Is there a W3C XML Schema or an ISO RelaxNG Schema to validate termbases before their import to Multiterm

If you want to generate a termbase in XML and import it to Multiterm, you should be able to validate it before the import. Are such schemas publicly available?

Parents
  • Presumably you are generating the MT XML from another tool, in which case the best place to ask questions like this would be the Language Developers forums here:

    https://community.sdl.com/developers-more/developers/language-developers/f/sdk_qa

    The scheme is available in the SDK.  I did want to give you the link but it seems to be broken, probably because we are updating all the developer documentation at the moment for release in a couple of weeks.  So here it is:

    ===========

    XML SCHEMA: MTF

    Contents:

    This schema describes the following elements and attributes:

    Elements Attributes Element-specific Attributes
    <concept>
    <conceptGrp>
    <date>
    <descrip>
    <descripGrp>
    <language>
    <languageGrp>
    <mtf> (document element)
    <system>
    <term>
    <termGrp>
    <transac>
    <transacGrp>
    <xref>
    Blink
    Clink
    datatype
    Glink
    id
    lang
    Plink
    Slink
    Tlink
    type
    Ulink
    <system type>
    <transac type>

    Document conventions:

    • [] - optional
    • []* - zero or more times
    • + - one or more times

    MTF Elements

    <concept>
    Primary element of a conceptGrp. Content is the entry number.
    syntax: <concept >
      ui4 datatype
    </concept>
    content: ui4 datatype
    order: Ignored when a datatype is specified.
    parents: conceptGrp
    childen: No children allowed when a datatype is specified.
    attributes: (none)
    model: Treated as closed when a datatype is specified.
    source:
    <ElementType name="concept" content="textOnly" model="closed" dt:type="ui4">
    	<description>Primary element of a conceptGrp. Content is the entry number.</description>
    </ElementType>
    <conceptGrp>
    The container for one concept. A concept has concept-level, language-independent fields, and at least one language group, which contains at least one term.
    syntax: <conceptGrp >
      many
      <concept>
    <system> ] *
    <transacGrp> ] *
    <descripGrp> ] *
      <languageGrp> +
    </conceptGrp>
    content: eltOnly
    order: many
    parents: mtf
    childen: concept, descripGrp, languageGrp, system, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="conceptGrp" content="eltOnly" order="many" model="closed">
    	<description>The container for one concept. A concept has concept-level, 
      language-independent fields, and at least one language group, which 
      contains at least one term.
      </description>
    	<element type="concept" minOccurs="1" maxOccurs="1"/>
    	<!-- contains concept-level info and languages -->
    	<element type="system" minOccurs="0" maxOccurs="*"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="languageGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <date>
    A date in ISO-8601:1988 format, as implemented by MSXML2.
    syntax: <date >
      dateTime datatype
    </date>
    content: dateTime datatype
    order: Ignored when a datatype is specified.
    parents: transacGrp
    childen: No children allowed when a datatype is specified.
    attributes: (none)
    model: Treated as closed when a datatype is specified.
    source:
    <ElementType name="date" content="textOnly" dt:type="dateTime" model="closed">
    	<description>A date in ISO-8601:1988 format, as implemented by MSXML2.</description>
    </ElementType>
    <descrip>
    Contains a descriptive, free-text element like a definition or a subject field. Content is formatted text, and the tag can carry a link attribute (link to concept, term, subject tree, graphics file, URL).
    syntax: <descrip
     [ Clink = string ]
     [ Glink = string ]
     [ Plink = string ]
     [ Slink = string ]
     [ Tlink = string ]
     [ type = string ]
     [ Ulink = string ]
    >
      (many)
    <xref> ] *
      mixed content
    </descrip>
    content: mixed
    order: many (default)
    parents: descripGrp
    childen: xref
    attributes: Clink, Glink, Plink, Slink, Tlink, type, Ulink
    model: closed
    source:
    <ElementType name="descrip" content="mixed" model="closed">
    	<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    	<element type="xref" minOccurs="0" maxOccurs="*"/>
    	<attribute type="type" required="yes"/>
    	<attribute type="Clink"/>
    	<attribute type="Glink"/>
    	<attribute type="Plink"/>
    	<attribute type="Slink"/>
    	<attribute type="Tlink"/>
    	<attribute type="Ulink"/>
    </ElementType>
    <descripGrp>
    Contains a descriptive element, and optionally a source, transactional info, and a note.
    syntax: <descripGrp >
      many
      <descrip>
    <transacGrp> ] *
    <descripGrp> ] *
    </descripGrp>
    content: eltOnly
    order: many
    parents: conceptGrp, descripGrp, languageGrp, termGrp
    childen: descrip, descripGrp, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="descripGrp" content="eltOnly" order="many" model="closed">
    	<description>Contains a descriptive element, and optionally a source, 
      transactional info, and a note.
      </description>
    	<element type="descrip" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    </ElementType>
    <language>
    A language specifier. The type attribute holds the "name" of the language as specified in the database definition, the lang attribute the locale in the form "en_us".
    syntax: <language
     [ lang = string ]
     [ type = string ]
    />
    content: empty
    order: seq
    parents: languageGrp
    childen: (none)
    attributes: lang, type
    model: open (default)
    source:
    <ElementType name="language" content="empty" order="seq">
    	<description>A language specifier. The type attribute holds the "name" of the language
      as specified in the database definition, the lang attribute the locale in the form "en_us".
      </description>
    	<attribute type="type" required="yes"/>
    	<attribute type="lang" required="yes"/>
    </ElementType>
    <languageGrp>
    The container for information about all terms in one language.
    syntax: <languageGrp >
      many
      <language>
    <transacGrp> ] *
    <descripGrp> ] *
      <termGrp> +
    </languageGrp>
    content: eltOnly
    order: many
    parents: conceptGrp
    childen: descripGrp, language, termGrp, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="languageGrp" content="eltOnly" order="many" model="closed">
    	<description>The container for information about all terms in one language.</description>
    	<element type="language" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="termGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <mtf>
    The root node of an MTF document. A document must contain at least one concept.
    syntax: <mtf >
      seq
      <conceptGrp> +
    </mtf>
    content: eltOnly
    order: seq
    parents: No parents found. This is probably the document element.
    childen: conceptGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="mtf" content="eltOnly" order="seq" model="closed">
    	<description>The root node of an MTF document. A document must contain at least one concept.
      </description>
    	<element type="conceptGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <system>
    Contains system-maintained information like the old entry class and the approval status of a concept, language or term. The type attribute can be one of "entryClass" and "status".
    syntax: <system
      type = enumeration: entryClass | status
    >
      textOnly content
    </system>
    content: textOnly
    order: many (default)
    parents: conceptGrp
    childen: No children allowed when content is textOnly.
    attributes: type
    model: closed
    source:
    <ElementType name="system" content="textOnly" model="closed">
    	<description>Contains system-maintained information like the old entry class 
      and the approval status of a concept, language or term. 
      The type attribute can be one of "entryClass" and "status".
      </description>
    	<AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    		<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    	</AttributeType>
    	<attribute type="type" required="yes"/>
    </ElementType>
    <term>
    Contains a term as plain text. Note: we have requests for storing formatted terms containing sub- and superscript for mathematical and chemical formulae. This should be decided soon, IMHO it's doable.
    syntax: <term >
      textOnly content
    </term>
    content: textOnly
    order: many (default)
    parents: termGrp
    childen: No children allowed when content is textOnly.
    attributes: (none)
    model: closed
    source:
    <ElementType name="term" content="textOnly" model="closed">
    	<description>Contains a term as plain text. Note: we have requests for storing 
      formatted terms containing sub- and superscript for mathematical and chemical formulae. 
      This should be decided soon, IMHO it's doable.
      </description>
    </ElementType>
    <termGrp>
    Groups one term and all its associated information, which can be descriptions, source references, notes, and transactional information.
    syntax: <termGrp >
      many
      <term>
    <transacGrp> ] *
    <descripGrp> ] *
    </termGrp>
    content: eltOnly
    order: many
    parents: languageGrp
    childen: descripGrp, term, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="termGrp" content="eltOnly" order="many" model="closed">
    	<description>Groups one term and all its associated information, which can be 
      descriptions, source references, notes, and transactional information.
      </description>
    	<element type="term" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    </ElementType>
    <transac>
    Contains a transaction type and responsible person. The type can be one of origination, modification. The content of the tag is the textual representation of the associated person link (Plink), i.e., the person's user id.
    syntax: <transac
     [ Plink = string ]
      type = enumeration: origination | modification
    >
      textOnly content
    </transac>
    content: textOnly
    order: many (default)
    parents: transacGrp
    childen: No children allowed when content is textOnly.
    attributes: Plink, type
    model: closed
    source:
    <ElementType name="transac" content="textOnly" model="closed">
    	<description>Contains a transaction type and responsible person. The type can be one
      of origination, modification. The content of the tag is the textual representation of 
      the associated person link (Plink), i.e., the person's user id. 
      </description>
    	<AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    		<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    	</AttributeType>
    	<attribute type="type" required="yes"/>
    	<attribute type="Plink"/>
    </ElementType>
    <transacGrp>
    Contains a transaction and date, and optionally a note.
    syntax: <transacGrp >
      many
      <transac>
      <date>
    </transacGrp>
    content: eltOnly
    order: many
    parents: conceptGrp, descripGrp, languageGrp, termGrp
    childen: date, transac
    attributes: (none)
    model: closed
    source:
    <ElementType name="transacGrp" content="eltOnly" order="many" model="closed">
    	<description>Contains a transaction and date, and optionally a note.</description>
    	<element type="transac" minOccurs="1" maxOccurs="1"/>
    	<element type="date" minOccurs="1" maxOccurs="1"/>
    </ElementType>
    <xref>
    Contains a descriptive, free-text element like a definition or a subject field. Content is formatted text, and the tag can carry a link attribute (link to concept, term, subject tree, graphics file, URL).
    syntax: <xref
     [ Tlink = string ]
    >
      textOnly content
    </xref>
    content: textOnly
    order: many (default)
    parents: descrip
    childen: No children allowed when content is textOnly.
    attributes: Tlink
    model: closed
    source:
    <ElementType name="xref" content="textOnly" model="closed">
    	<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    	<attribute type="Tlink" required="yes"/>
    </ElementType>

    MTF Attributes

    <MTF Blink>
    Link to a bibliographic entry (stored in the same database).
    syntax: [ Blink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Blink" dt:type="string" required="no">
    	<description>Link to a bibliographic entry (stored in the same database).</description>
    </AttributeType>
    <MTF Clink>
    Link to a concept (stored in the same database). The link target is an entrynumber.
    syntax: [ Clink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Clink" dt:type="string" required="no">
    	<description>Link to a concept (stored in the same database). The link target is an entrynumber.</description>
    </AttributeType>
    <MTF datatype>
    syntax: [ datatype = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="datatype" dt:type="string"/>
    <MTF Glink>
    Link to a graphics file (not stored in the database). The link target is a filename.
    syntax: [ Glink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Glink" dt:type="string" required="no">
    	<description>Link to a graphics file (not stored in the database). The link target is a filename.</description>
    </AttributeType>
    <MTF id>
    syntax: [ id = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="id" dt:type="string"/>
    <MTF lang>
    syntax: [ lang = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="lang" dt:type="string"/>
    <MTF Plink>
    Link to a user (stored in user manager). The link target is the user name (user id).
    syntax: [ Plink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Plink" dt:type="string" required="no">
    	<description>Link to a user (stored in user manager). The link target is the user name (user id).</description>
    </AttributeType>
    <MTF Slink>
    Link to node in a pick-tree (Subject value).
    syntax: [ Slink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Slink" dt:type="string" required="no">
    	<description>Link to node in a pick-tree (Subject value).</description>
    </AttributeType>
    <MTF Tlink>
    Link to a term (stored in the same database). The link target is "index:term".
    syntax: [ Tlink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Tlink" dt:type="string" required="no">
    	<description>Link to a term (stored in the same database). The link target is "index:term".</description>
    </AttributeType>
    <MTF type>
    syntax: [ type = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="type" dt:type="string"/>
    <system type>
    A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) or type status (values: new, reviewed, approved).
    syntax: type = enumeration: entryClass | status
    required: yes
    datatype: enumeration
    values: entryClass | status
    elements: system
    source:
    <AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    	<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    </AttributeType>
    <transac type>
    A transac tag can be of type origination (the associated field has been created) or type modification (the associated field has been modified).
    syntax: type = enumeration: origination | modification
    required: yes
    datatype: enumeration
    values: origination | modification
    elements: transac
    source:
    <AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    	<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    </AttributeType>
    <MTF Ulink>
    Link to a URL. The link target is specified in standard URL syntax.
    syntax: [ Ulink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Ulink" dt:type="string" required="no">
    	<description>Link to a URL. The link target is specified in standard URL syntax.</description>
    </AttributeType>

    MTF Source

    <Schema name="MTF" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:html="">www.w3.org/.../REC-html40">
    	<!-- DESCRIPTION -->
    	<!--
    This schema describes the structure of a MultiTerm XML file. 
    Copyright (C) 2000-2003 TRADOS Ireland Ltd., Dublin.
    
    ;; 
    ;; See msdn.microsoft.com/.../xmls0390.htm for
    ;; the schema documentation.
    ;; 
     -->
    	<!-- HISTORY -->
    	<!--
    ;; 05-May-2000		Cornelis van der Laan	
    ;;    Removed <xref>, <termNote>, <admin>.
    ;;
    ;; 18-Jan-2000		Cornelis van der Laan	
    ;;    Removed TMX tags, because they apply to the exchange format TBX,
    ;;    not to the database-internal format we describe here.
    ;;    Added <xref> tag to <descrip> and <note> fields. 
    ;;    Added mandatory type attribute to the <language> tag.
    ;;
    ;;	10-04-2001		Milosavljevic Milosh	
    ;;
    ;;	  Added <xref> back to <descrip> tags.
    ;;	  Added <descripGrp> inside of <descripGrp> tags.
    ;;	  Remove <sourceGrp> and <noteGrp> tags. 
    ;;    Remove attribute lang from <descrip>
    ;;
    ;;17-07-2003			Michael Wetzel
    ;;
    ;;		Bug fix: Changed element content of <descrip>element from
    ;; 	"textOnly" to "mixed", since it can contain <xref> elements 
    ;;
    ;;
     -->
    	<!-- DEFAULT ATTRIBUTES -->
    	<!-- 
    These attributes can in general be applied to all elements.
    Note: 'type' is defined here, but for many elements, it will be overridden 
    in favor of a restricted-value version specific to that element's requirements.
    -->
    	<AttributeType name="id" dt:type="string"/>
    	<AttributeType name="lang" dt:type="string"/>
    	<AttributeType name="type" dt:type="string"/>
    	<AttributeType name="datatype" dt:type="string"/>
    	<!-- LINK ATTRIBUTES -->
    	<!-- 
    · CLink: link points to a concept 
    · BLink: link points to a bibliographical entry
    · TLink: link points to a term 
    · PLink: link points to a person
    · GLink: link points to a graphics or other binary data object
    · SLink: link pointing to a (non-leaf-)node of a pick-tree
    · ULink: universal link points to any external entity using URL syntax
    -->
    	<AttributeType name="Blink" dt:type="string" required="no">
    		<description>Link to a bibliographic entry (stored in the same database).</description>
    	</AttributeType>
    	<AttributeType name="Clink" dt:type="string" required="no">
    		<description>Link to a concept (stored in the same database). The link target is an entrynumber.</description>
    	</AttributeType>
    	<AttributeType name="Glink" dt:type="string" required="no">
    		<description>Link to a graphics file (not stored in the database). The link target is a filename.</description>
    	</AttributeType>
    	<AttributeType name="Plink" dt:type="string" required="no">
    		<description>Link to a user (stored in user manager). The link target is the user name (user id).</description>
    	</AttributeType>
    	<AttributeType name="Slink" dt:type="string" required="no">
    		<description>Link to node in a pick-tree (Subject value).</description>
    	</AttributeType>
    	<AttributeType name="Tlink" dt:type="string" required="no">
    		<description>Link to a term (stored in the same database). The link target is "index:term".</description>
    	</AttributeType>
    	<AttributeType name="Ulink" dt:type="string" required="no">
    		<description>Link to a URL. The link target is specified in standard URL syntax.</description>
    	</AttributeType>
    	<!-- MULTITERM ELEMENTS (IN HIERARCHICAL ORDER) -->
    	<!-- start element -->
    	<ElementType name="mtf" content="eltOnly" order="seq" model="closed">
    		<description>The root node of an MTF document. A document must contain at least one concept.
      </description>
    		<element type="conceptGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<!-- concept container -->
    	<ElementType name="conceptGrp" content="eltOnly" order="many" model="closed">
    		<description>The container for one concept. A concept has concept-level, 
      language-independent fields, and at least one language group, which 
      contains at least one term.
      </description>
    		<element type="concept" minOccurs="1" maxOccurs="1"/>
    		<!-- contains concept-level info and languages -->
    		<element type="system" minOccurs="0" maxOccurs="*"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="languageGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="concept" content="textOnly" model="closed" dt:type="ui4">
    		<description>Primary element of a conceptGrp. Content is the entry number.</description>
    	</ElementType>
    	<ElementType name="system" content="textOnly" model="closed">
    		<description>Contains system-maintained information like the old entry class 
      and the approval status of a concept, language or term. 
      The type attribute can be one of "entryClass" and "status".
      </description>
    		<AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    			<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    		</AttributeType>
    		<attribute type="type" required="yes"/>
    	</ElementType>
    	<ElementType name="transacGrp" content="eltOnly" order="many" model="closed">
    		<description>Contains a transaction and date, and optionally a note.</description>
    		<element type="transac" minOccurs="1" maxOccurs="1"/>
    		<element type="date" minOccurs="1" maxOccurs="1"/>
    	</ElementType>
    	<ElementType name="date" content="textOnly" dt:type="dateTime" model="closed">
    		<description>A date in ISO-8601:1988 format, as implemented by MSXML2.</description>
    	</ElementType>
    	<ElementType name="transac" content="textOnly" model="closed">
    		<description>Contains a transaction type and responsible person. The type can be one
      of origination, modification. The content of the tag is the textual representation of 
      the associated person link (Plink), i.e., the person's user id. 
      </description>
    		<AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    			<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    		</AttributeType>
    		<attribute type="type" required="yes"/>
    		<attribute type="Plink"/>
    	</ElementType>
    	<ElementType name="descripGrp" content="eltOnly" order="many" model="closed">
    		<description>Contains a descriptive element, and optionally a source, 
      transactional info, and a note.
      </description>
    		<element type="descrip" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="descrip" content="mixed" model="closed">
    		<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    		<element type="xref" minOccurs="0" maxOccurs="*"/>
    		<attribute type="type" required="yes"/>
    		<attribute type="Clink"/>
    		<attribute type="Glink"/>
    		<attribute type="Plink"/>
    		<attribute type="Slink"/>
    		<attribute type="Tlink"/>
    		<attribute type="Ulink"/>
    	</ElementType>
    	<ElementType name="xref" content="textOnly" model="closed">
    		<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    		<attribute type="Tlink" required="yes"/>
    	</ElementType>
    	<ElementType name="languageGrp" content="eltOnly" order="many" model="closed">
    		<description>The container for information about all terms in one language.</description>
    		<element type="language" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="termGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="language" content="empty" order="seq">
    		<description>A language specifier. The type attribute holds the "name" of the language
      as specified in the database definition, the lang attribute the locale in the form "en_us".
      </description>
    		<attribute type="type" required="yes"/>
    		<attribute type="lang" required="yes"/>
    	</ElementType>
    	<ElementType name="termGrp" content="eltOnly" order="many" model="closed">
    		<description>Groups one term and all its associated information, which can be 
      descriptions, source references, notes, and transactional information.
      </description>
    		<element type="term" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="term" content="textOnly" model="closed">
    		<description>Contains a term as plain text. Note: we have requests for storing 
      formatted terms containing sub- and superscript for mathematical and chemical formulae. 
      This should be decided soon, IMHO it's doable.
      </description>
    	</ElementType>
    </Schema>

    Schema Attributes Reference:

    open model
    The element can contain elements, attributes, and text not specified in the content model. This is the default value.
    closed model
    The element cannot contain elements, attributes, and text except for that specified in the content model. DTDs use a closed model.
    textOnly content
    The element can contain only text, not elements. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    eltOnly content
    The element can contain only the elements, not free text. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    empty content
    The element cannot contain text or elements. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    mixed content
    The element can contain a mix of named elements and text. This is the default value.
    one order
    Permits only one of a set of elements.
    seq order
    Requires the elements to appear in the specified sequence.
    many order
    Permits the elements to appear (or not appear) in any order. This is the default.

    Datatype Reference:

    bin.base64 datatype
    MIME-style Base64 encoded binary BLOB.
    bin.hex datatype
    Hexadecimal digits representing octets.
    boolean datatype
    0 or 1, where 0 == "false" and 1 =="true".
    char datatype
    String, one character long.
    date datatype
    Date in a subset ISO 8601 format, without the time data. For example: "1994-11-05".
    dateTime datatype
    Date in a subset of ISO 8601 format, with optional time and no optional zone. Fractional seconds can be as precise as nanoseconds. For example, "1988-04-07T18:39:09".
    dateTime.tz datatype
    Date in a subset ISO 8601 format, with optional time and optional zone. Fractional seconds can be as precise as nanoseconds. For example: "1988-04-07T18:39:09-08:00".
    entity datatype
    Represents the XML ENTITY type.
    entities datatype
    Represents the XML ENTITIES type.
    enumeration datatype
    Represents an enumerated type (supported on attributes only).
    fixed.14.4 datatype
    Same as "number" but no more than 14 digits to the left of the decimal point, and no more than 4 to the right.
    float datatype
    Real number, with no limit on digits; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 1.7976931348623157E+308 to 2.2250738585072014E-308.
    id datatype
    Represents the XML ID type.
    idref datatype
    Represents the XML IDREF type.
    idrefs datatype
    Represents the XML IDREFS type.
    int datatype
    Number, with optional sign, no fractions, and no exponent.
    nmtoken datatype
    Represents the XML NMTOKEN type.
    nmtokens datatype
    Represents the XML NMTOKENS type.
    notation datatype
    Represents a NOTATION type.
    number datatype
    Number, with no limit on digits; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. (Values have same range as most significant number, R8, 1.7976931348623157E+308 to 2.2250738585072014E-308.)
    string datatype
    Represents a string type.
    time datatype
    Time in a subset ISO 8601 format, with no date and no time zone. For example: "08:15:27".
    time.tz datatype
    Time in a subset ISO 8601 format, with no date but optional time zone. For example: "08:1527-05:00".
    i1 datatype
    Integer represented in one byte. A number, with optional sign, no fractions, no exponent. For example: "1, 127, -128".
    i2 datatype
    Integer represented in one word. A number, with optional sign, no fractions, no exponent. For example: "1, 703, -32768".
    i4 datatype
    Integer represented in four bytes. A number, with optional sign, no fractions, no exponent. For example: "1, 703, -32768, 148343, -1000000000".
    r4 datatype
    Real number, with seven digit precision; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 3.40282347E+38F to 1.17549435E-38F.
    r8
    Real number, with 15 digit precision; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 1.7976931348623157E+308 to 2.2250738585072014E-308.
    ui1 datatype
    Unsigned integer. A number, unsigned, no fractions, no exponent. For example: "1, 255".
    ui2 datatype
    Unsigned integer, two bytes. A number, unsigned, no fractions, no exponent. For example: "1, 255, 65535".
    ui4 datatype
    Unsigned integer, four bytes. A number, unsigned, no fractions, no exponent. For example: "1, 703, 3000000000".
    uri datatype
    Universal Resource Identifier (URI). For example, "urn:schemas-microsoft-com:Office9".
    uuid datatype
    Hexadecimal digits representing octets, optional embedded hyphens that are ignored. For example: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

Reply
  • Presumably you are generating the MT XML from another tool, in which case the best place to ask questions like this would be the Language Developers forums here:

    https://community.sdl.com/developers-more/developers/language-developers/f/sdk_qa

    The scheme is available in the SDK.  I did want to give you the link but it seems to be broken, probably because we are updating all the developer documentation at the moment for release in a couple of weeks.  So here it is:

    ===========

    XML SCHEMA: MTF

    Contents:

    This schema describes the following elements and attributes:

    Elements Attributes Element-specific Attributes
    <concept>
    <conceptGrp>
    <date>
    <descrip>
    <descripGrp>
    <language>
    <languageGrp>
    <mtf> (document element)
    <system>
    <term>
    <termGrp>
    <transac>
    <transacGrp>
    <xref>
    Blink
    Clink
    datatype
    Glink
    id
    lang
    Plink
    Slink
    Tlink
    type
    Ulink
    <system type>
    <transac type>

    Document conventions:

    • [] - optional
    • []* - zero or more times
    • + - one or more times

    MTF Elements

    <concept>
    Primary element of a conceptGrp. Content is the entry number.
    syntax: <concept >
      ui4 datatype
    </concept>
    content: ui4 datatype
    order: Ignored when a datatype is specified.
    parents: conceptGrp
    childen: No children allowed when a datatype is specified.
    attributes: (none)
    model: Treated as closed when a datatype is specified.
    source:
    <ElementType name="concept" content="textOnly" model="closed" dt:type="ui4">
    	<description>Primary element of a conceptGrp. Content is the entry number.</description>
    </ElementType>
    <conceptGrp>
    The container for one concept. A concept has concept-level, language-independent fields, and at least one language group, which contains at least one term.
    syntax: <conceptGrp >
      many
      <concept>
    <system> ] *
    <transacGrp> ] *
    <descripGrp> ] *
      <languageGrp> +
    </conceptGrp>
    content: eltOnly
    order: many
    parents: mtf
    childen: concept, descripGrp, languageGrp, system, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="conceptGrp" content="eltOnly" order="many" model="closed">
    	<description>The container for one concept. A concept has concept-level, 
      language-independent fields, and at least one language group, which 
      contains at least one term.
      </description>
    	<element type="concept" minOccurs="1" maxOccurs="1"/>
    	<!-- contains concept-level info and languages -->
    	<element type="system" minOccurs="0" maxOccurs="*"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="languageGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <date>
    A date in ISO-8601:1988 format, as implemented by MSXML2.
    syntax: <date >
      dateTime datatype
    </date>
    content: dateTime datatype
    order: Ignored when a datatype is specified.
    parents: transacGrp
    childen: No children allowed when a datatype is specified.
    attributes: (none)
    model: Treated as closed when a datatype is specified.
    source:
    <ElementType name="date" content="textOnly" dt:type="dateTime" model="closed">
    	<description>A date in ISO-8601:1988 format, as implemented by MSXML2.</description>
    </ElementType>
    <descrip>
    Contains a descriptive, free-text element like a definition or a subject field. Content is formatted text, and the tag can carry a link attribute (link to concept, term, subject tree, graphics file, URL).
    syntax: <descrip
     [ Clink = string ]
     [ Glink = string ]
     [ Plink = string ]
     [ Slink = string ]
     [ Tlink = string ]
     [ type = string ]
     [ Ulink = string ]
    >
      (many)
    <xref> ] *
      mixed content
    </descrip>
    content: mixed
    order: many (default)
    parents: descripGrp
    childen: xref
    attributes: Clink, Glink, Plink, Slink, Tlink, type, Ulink
    model: closed
    source:
    <ElementType name="descrip" content="mixed" model="closed">
    	<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    	<element type="xref" minOccurs="0" maxOccurs="*"/>
    	<attribute type="type" required="yes"/>
    	<attribute type="Clink"/>
    	<attribute type="Glink"/>
    	<attribute type="Plink"/>
    	<attribute type="Slink"/>
    	<attribute type="Tlink"/>
    	<attribute type="Ulink"/>
    </ElementType>
    <descripGrp>
    Contains a descriptive element, and optionally a source, transactional info, and a note.
    syntax: <descripGrp >
      many
      <descrip>
    <transacGrp> ] *
    <descripGrp> ] *
    </descripGrp>
    content: eltOnly
    order: many
    parents: conceptGrp, descripGrp, languageGrp, termGrp
    childen: descrip, descripGrp, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="descripGrp" content="eltOnly" order="many" model="closed">
    	<description>Contains a descriptive element, and optionally a source, 
      transactional info, and a note.
      </description>
    	<element type="descrip" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    </ElementType>
    <language>
    A language specifier. The type attribute holds the "name" of the language as specified in the database definition, the lang attribute the locale in the form "en_us".
    syntax: <language
     [ lang = string ]
     [ type = string ]
    />
    content: empty
    order: seq
    parents: languageGrp
    childen: (none)
    attributes: lang, type
    model: open (default)
    source:
    <ElementType name="language" content="empty" order="seq">
    	<description>A language specifier. The type attribute holds the "name" of the language
      as specified in the database definition, the lang attribute the locale in the form "en_us".
      </description>
    	<attribute type="type" required="yes"/>
    	<attribute type="lang" required="yes"/>
    </ElementType>
    <languageGrp>
    The container for information about all terms in one language.
    syntax: <languageGrp >
      many
      <language>
    <transacGrp> ] *
    <descripGrp> ] *
      <termGrp> +
    </languageGrp>
    content: eltOnly
    order: many
    parents: conceptGrp
    childen: descripGrp, language, termGrp, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="languageGrp" content="eltOnly" order="many" model="closed">
    	<description>The container for information about all terms in one language.</description>
    	<element type="language" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="termGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <mtf>
    The root node of an MTF document. A document must contain at least one concept.
    syntax: <mtf >
      seq
      <conceptGrp> +
    </mtf>
    content: eltOnly
    order: seq
    parents: No parents found. This is probably the document element.
    childen: conceptGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="mtf" content="eltOnly" order="seq" model="closed">
    	<description>The root node of an MTF document. A document must contain at least one concept.
      </description>
    	<element type="conceptGrp" minOccurs="1" maxOccurs="*"/>
    </ElementType>
    <system>
    Contains system-maintained information like the old entry class and the approval status of a concept, language or term. The type attribute can be one of "entryClass" and "status".
    syntax: <system
      type = enumeration: entryClass | status
    >
      textOnly content
    </system>
    content: textOnly
    order: many (default)
    parents: conceptGrp
    childen: No children allowed when content is textOnly.
    attributes: type
    model: closed
    source:
    <ElementType name="system" content="textOnly" model="closed">
    	<description>Contains system-maintained information like the old entry class 
      and the approval status of a concept, language or term. 
      The type attribute can be one of "entryClass" and "status".
      </description>
    	<AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    		<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    	</AttributeType>
    	<attribute type="type" required="yes"/>
    </ElementType>
    <term>
    Contains a term as plain text. Note: we have requests for storing formatted terms containing sub- and superscript for mathematical and chemical formulae. This should be decided soon, IMHO it's doable.
    syntax: <term >
      textOnly content
    </term>
    content: textOnly
    order: many (default)
    parents: termGrp
    childen: No children allowed when content is textOnly.
    attributes: (none)
    model: closed
    source:
    <ElementType name="term" content="textOnly" model="closed">
    	<description>Contains a term as plain text. Note: we have requests for storing 
      formatted terms containing sub- and superscript for mathematical and chemical formulae. 
      This should be decided soon, IMHO it's doable.
      </description>
    </ElementType>
    <termGrp>
    Groups one term and all its associated information, which can be descriptions, source references, notes, and transactional information.
    syntax: <termGrp >
      many
      <term>
    <transacGrp> ] *
    <descripGrp> ] *
    </termGrp>
    content: eltOnly
    order: many
    parents: languageGrp
    childen: descripGrp, term, transacGrp
    attributes: (none)
    model: closed
    source:
    <ElementType name="termGrp" content="eltOnly" order="many" model="closed">
    	<description>Groups one term and all its associated information, which can be 
      descriptions, source references, notes, and transactional information.
      </description>
    	<element type="term" minOccurs="1" maxOccurs="1"/>
    	<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    	<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    </ElementType>
    <transac>
    Contains a transaction type and responsible person. The type can be one of origination, modification. The content of the tag is the textual representation of the associated person link (Plink), i.e., the person's user id.
    syntax: <transac
     [ Plink = string ]
      type = enumeration: origination | modification
    >
      textOnly content
    </transac>
    content: textOnly
    order: many (default)
    parents: transacGrp
    childen: No children allowed when content is textOnly.
    attributes: Plink, type
    model: closed
    source:
    <ElementType name="transac" content="textOnly" model="closed">
    	<description>Contains a transaction type and responsible person. The type can be one
      of origination, modification. The content of the tag is the textual representation of 
      the associated person link (Plink), i.e., the person's user id. 
      </description>
    	<AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    		<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    	</AttributeType>
    	<attribute type="type" required="yes"/>
    	<attribute type="Plink"/>
    </ElementType>
    <transacGrp>
    Contains a transaction and date, and optionally a note.
    syntax: <transacGrp >
      many
      <transac>
      <date>
    </transacGrp>
    content: eltOnly
    order: many
    parents: conceptGrp, descripGrp, languageGrp, termGrp
    childen: date, transac
    attributes: (none)
    model: closed
    source:
    <ElementType name="transacGrp" content="eltOnly" order="many" model="closed">
    	<description>Contains a transaction and date, and optionally a note.</description>
    	<element type="transac" minOccurs="1" maxOccurs="1"/>
    	<element type="date" minOccurs="1" maxOccurs="1"/>
    </ElementType>
    <xref>
    Contains a descriptive, free-text element like a definition or a subject field. Content is formatted text, and the tag can carry a link attribute (link to concept, term, subject tree, graphics file, URL).
    syntax: <xref
     [ Tlink = string ]
    >
      textOnly content
    </xref>
    content: textOnly
    order: many (default)
    parents: descrip
    childen: No children allowed when content is textOnly.
    attributes: Tlink
    model: closed
    source:
    <ElementType name="xref" content="textOnly" model="closed">
    	<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    	<attribute type="Tlink" required="yes"/>
    </ElementType>

    MTF Attributes

    <MTF Blink>
    Link to a bibliographic entry (stored in the same database).
    syntax: [ Blink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Blink" dt:type="string" required="no">
    	<description>Link to a bibliographic entry (stored in the same database).</description>
    </AttributeType>
    <MTF Clink>
    Link to a concept (stored in the same database). The link target is an entrynumber.
    syntax: [ Clink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Clink" dt:type="string" required="no">
    	<description>Link to a concept (stored in the same database). The link target is an entrynumber.</description>
    </AttributeType>
    <MTF datatype>
    syntax: [ datatype = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="datatype" dt:type="string"/>
    <MTF Glink>
    Link to a graphics file (not stored in the database). The link target is a filename.
    syntax: [ Glink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Glink" dt:type="string" required="no">
    	<description>Link to a graphics file (not stored in the database). The link target is a filename.</description>
    </AttributeType>
    <MTF id>
    syntax: [ id = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="id" dt:type="string"/>
    <MTF lang>
    syntax: [ lang = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="lang" dt:type="string"/>
    <MTF Plink>
    Link to a user (stored in user manager). The link target is the user name (user id).
    syntax: [ Plink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Plink" dt:type="string" required="no">
    	<description>Link to a user (stored in user manager). The link target is the user name (user id).</description>
    </AttributeType>
    <MTF Slink>
    Link to node in a pick-tree (Subject value).
    syntax: [ Slink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Slink" dt:type="string" required="no">
    	<description>Link to node in a pick-tree (Subject value).</description>
    </AttributeType>
    <MTF Tlink>
    Link to a term (stored in the same database). The link target is "index:term".
    syntax: [ Tlink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Tlink" dt:type="string" required="no">
    	<description>Link to a term (stored in the same database). The link target is "index:term".</description>
    </AttributeType>
    <MTF type>
    syntax: [ type = string ]
    required: no (default)
    datatype: string
    elements: MTF
    source:
    <AttributeType name="type" dt:type="string"/>
    <system type>
    A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) or type status (values: new, reviewed, approved).
    syntax: type = enumeration: entryClass | status
    required: yes
    datatype: enumeration
    values: entryClass | status
    elements: system
    source:
    <AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    	<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    </AttributeType>
    <transac type>
    A transac tag can be of type origination (the associated field has been created) or type modification (the associated field has been modified).
    syntax: type = enumeration: origination | modification
    required: yes
    datatype: enumeration
    values: origination | modification
    elements: transac
    source:
    <AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    	<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    </AttributeType>
    <MTF Ulink>
    Link to a URL. The link target is specified in standard URL syntax.
    syntax: [ Ulink = string ]
    required: no
    datatype: string
    elements: MTF
    source:
    <AttributeType name="Ulink" dt:type="string" required="no">
    	<description>Link to a URL. The link target is specified in standard URL syntax.</description>
    </AttributeType>

    MTF Source

    <Schema name="MTF" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:html="">www.w3.org/.../REC-html40">
    	<!-- DESCRIPTION -->
    	<!--
    This schema describes the structure of a MultiTerm XML file. 
    Copyright (C) 2000-2003 TRADOS Ireland Ltd., Dublin.
    
    ;; 
    ;; See msdn.microsoft.com/.../xmls0390.htm for
    ;; the schema documentation.
    ;; 
     -->
    	<!-- HISTORY -->
    	<!--
    ;; 05-May-2000		Cornelis van der Laan	
    ;;    Removed <xref>, <termNote>, <admin>.
    ;;
    ;; 18-Jan-2000		Cornelis van der Laan	
    ;;    Removed TMX tags, because they apply to the exchange format TBX,
    ;;    not to the database-internal format we describe here.
    ;;    Added <xref> tag to <descrip> and <note> fields. 
    ;;    Added mandatory type attribute to the <language> tag.
    ;;
    ;;	10-04-2001		Milosavljevic Milosh	
    ;;
    ;;	  Added <xref> back to <descrip> tags.
    ;;	  Added <descripGrp> inside of <descripGrp> tags.
    ;;	  Remove <sourceGrp> and <noteGrp> tags. 
    ;;    Remove attribute lang from <descrip>
    ;;
    ;;17-07-2003			Michael Wetzel
    ;;
    ;;		Bug fix: Changed element content of <descrip>element from
    ;; 	"textOnly" to "mixed", since it can contain <xref> elements 
    ;;
    ;;
     -->
    	<!-- DEFAULT ATTRIBUTES -->
    	<!-- 
    These attributes can in general be applied to all elements.
    Note: 'type' is defined here, but for many elements, it will be overridden 
    in favor of a restricted-value version specific to that element's requirements.
    -->
    	<AttributeType name="id" dt:type="string"/>
    	<AttributeType name="lang" dt:type="string"/>
    	<AttributeType name="type" dt:type="string"/>
    	<AttributeType name="datatype" dt:type="string"/>
    	<!-- LINK ATTRIBUTES -->
    	<!-- 
    · CLink: link points to a concept 
    · BLink: link points to a bibliographical entry
    · TLink: link points to a term 
    · PLink: link points to a person
    · GLink: link points to a graphics or other binary data object
    · SLink: link pointing to a (non-leaf-)node of a pick-tree
    · ULink: universal link points to any external entity using URL syntax
    -->
    	<AttributeType name="Blink" dt:type="string" required="no">
    		<description>Link to a bibliographic entry (stored in the same database).</description>
    	</AttributeType>
    	<AttributeType name="Clink" dt:type="string" required="no">
    		<description>Link to a concept (stored in the same database). The link target is an entrynumber.</description>
    	</AttributeType>
    	<AttributeType name="Glink" dt:type="string" required="no">
    		<description>Link to a graphics file (not stored in the database). The link target is a filename.</description>
    	</AttributeType>
    	<AttributeType name="Plink" dt:type="string" required="no">
    		<description>Link to a user (stored in user manager). The link target is the user name (user id).</description>
    	</AttributeType>
    	<AttributeType name="Slink" dt:type="string" required="no">
    		<description>Link to node in a pick-tree (Subject value).</description>
    	</AttributeType>
    	<AttributeType name="Tlink" dt:type="string" required="no">
    		<description>Link to a term (stored in the same database). The link target is "index:term".</description>
    	</AttributeType>
    	<AttributeType name="Ulink" dt:type="string" required="no">
    		<description>Link to a URL. The link target is specified in standard URL syntax.</description>
    	</AttributeType>
    	<!-- MULTITERM ELEMENTS (IN HIERARCHICAL ORDER) -->
    	<!-- start element -->
    	<ElementType name="mtf" content="eltOnly" order="seq" model="closed">
    		<description>The root node of an MTF document. A document must contain at least one concept.
      </description>
    		<element type="conceptGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<!-- concept container -->
    	<ElementType name="conceptGrp" content="eltOnly" order="many" model="closed">
    		<description>The container for one concept. A concept has concept-level, 
      language-independent fields, and at least one language group, which 
      contains at least one term.
      </description>
    		<element type="concept" minOccurs="1" maxOccurs="1"/>
    		<!-- contains concept-level info and languages -->
    		<element type="system" minOccurs="0" maxOccurs="*"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="languageGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="concept" content="textOnly" model="closed" dt:type="ui4">
    		<description>Primary element of a conceptGrp. Content is the entry number.</description>
    	</ElementType>
    	<ElementType name="system" content="textOnly" model="closed">
    		<description>Contains system-maintained information like the old entry class 
      and the approval status of a concept, language or term. 
      The type attribute can be one of "entryClass" and "status".
      </description>
    		<AttributeType name="type" dt:type="enumeration" dt:values="entryClass status" required="yes">
    			<description>A system tag can be of type entryClass (values 1-8, inherited from old MTW databases) 
        or type status (values: new, reviewed, approved).</description>
    		</AttributeType>
    		<attribute type="type" required="yes"/>
    	</ElementType>
    	<ElementType name="transacGrp" content="eltOnly" order="many" model="closed">
    		<description>Contains a transaction and date, and optionally a note.</description>
    		<element type="transac" minOccurs="1" maxOccurs="1"/>
    		<element type="date" minOccurs="1" maxOccurs="1"/>
    	</ElementType>
    	<ElementType name="date" content="textOnly" dt:type="dateTime" model="closed">
    		<description>A date in ISO-8601:1988 format, as implemented by MSXML2.</description>
    	</ElementType>
    	<ElementType name="transac" content="textOnly" model="closed">
    		<description>Contains a transaction type and responsible person. The type can be one
      of origination, modification. The content of the tag is the textual representation of 
      the associated person link (Plink), i.e., the person's user id. 
      </description>
    		<AttributeType name="type" dt:type="enumeration" dt:values="origination modification" required="yes">
    			<description>A transac tag can be of type origination (the associated field has been created) 
        or type modification (the associated field has been modified).</description>
    		</AttributeType>
    		<attribute type="type" required="yes"/>
    		<attribute type="Plink"/>
    	</ElementType>
    	<ElementType name="descripGrp" content="eltOnly" order="many" model="closed">
    		<description>Contains a descriptive element, and optionally a source, 
      transactional info, and a note.
      </description>
    		<element type="descrip" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="descrip" content="mixed" model="closed">
    		<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    		<element type="xref" minOccurs="0" maxOccurs="*"/>
    		<attribute type="type" required="yes"/>
    		<attribute type="Clink"/>
    		<attribute type="Glink"/>
    		<attribute type="Plink"/>
    		<attribute type="Slink"/>
    		<attribute type="Tlink"/>
    		<attribute type="Ulink"/>
    	</ElementType>
    	<ElementType name="xref" content="textOnly" model="closed">
    		<description>Contains a descriptive, free-text element like a definition 
      or a subject field. Content is formatted text, and the tag can carry a 
      link attribute (link to concept, term, subject tree, graphics file, URL).
      </description>
    		<attribute type="Tlink" required="yes"/>
    	</ElementType>
    	<ElementType name="languageGrp" content="eltOnly" order="many" model="closed">
    		<description>The container for information about all terms in one language.</description>
    		<element type="language" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="termGrp" minOccurs="1" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="language" content="empty" order="seq">
    		<description>A language specifier. The type attribute holds the "name" of the language
      as specified in the database definition, the lang attribute the locale in the form "en_us".
      </description>
    		<attribute type="type" required="yes"/>
    		<attribute type="lang" required="yes"/>
    	</ElementType>
    	<ElementType name="termGrp" content="eltOnly" order="many" model="closed">
    		<description>Groups one term and all its associated information, which can be 
      descriptions, source references, notes, and transactional information.
      </description>
    		<element type="term" minOccurs="1" maxOccurs="1"/>
    		<element type="transacGrp" minOccurs="0" maxOccurs="*"/>
    		<element type="descripGrp" minOccurs="0" maxOccurs="*"/>
    	</ElementType>
    	<ElementType name="term" content="textOnly" model="closed">
    		<description>Contains a term as plain text. Note: we have requests for storing 
      formatted terms containing sub- and superscript for mathematical and chemical formulae. 
      This should be decided soon, IMHO it's doable.
      </description>
    	</ElementType>
    </Schema>

    Schema Attributes Reference:

    open model
    The element can contain elements, attributes, and text not specified in the content model. This is the default value.
    closed model
    The element cannot contain elements, attributes, and text except for that specified in the content model. DTDs use a closed model.
    textOnly content
    The element can contain only text, not elements. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    eltOnly content
    The element can contain only the elements, not free text. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    empty content
    The element cannot contain text or elements. Note that if the model attribute is set to "open", the element can contain text and additional elements.
    mixed content
    The element can contain a mix of named elements and text. This is the default value.
    one order
    Permits only one of a set of elements.
    seq order
    Requires the elements to appear in the specified sequence.
    many order
    Permits the elements to appear (or not appear) in any order. This is the default.

    Datatype Reference:

    bin.base64 datatype
    MIME-style Base64 encoded binary BLOB.
    bin.hex datatype
    Hexadecimal digits representing octets.
    boolean datatype
    0 or 1, where 0 == "false" and 1 =="true".
    char datatype
    String, one character long.
    date datatype
    Date in a subset ISO 8601 format, without the time data. For example: "1994-11-05".
    dateTime datatype
    Date in a subset of ISO 8601 format, with optional time and no optional zone. Fractional seconds can be as precise as nanoseconds. For example, "1988-04-07T18:39:09".
    dateTime.tz datatype
    Date in a subset ISO 8601 format, with optional time and optional zone. Fractional seconds can be as precise as nanoseconds. For example: "1988-04-07T18:39:09-08:00".
    entity datatype
    Represents the XML ENTITY type.
    entities datatype
    Represents the XML ENTITIES type.
    enumeration datatype
    Represents an enumerated type (supported on attributes only).
    fixed.14.4 datatype
    Same as "number" but no more than 14 digits to the left of the decimal point, and no more than 4 to the right.
    float datatype
    Real number, with no limit on digits; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 1.7976931348623157E+308 to 2.2250738585072014E-308.
    id datatype
    Represents the XML ID type.
    idref datatype
    Represents the XML IDREF type.
    idrefs datatype
    Represents the XML IDREFS type.
    int datatype
    Number, with optional sign, no fractions, and no exponent.
    nmtoken datatype
    Represents the XML NMTOKEN type.
    nmtokens datatype
    Represents the XML NMTOKENS type.
    notation datatype
    Represents a NOTATION type.
    number datatype
    Number, with no limit on digits; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. (Values have same range as most significant number, R8, 1.7976931348623157E+308 to 2.2250738585072014E-308.)
    string datatype
    Represents a string type.
    time datatype
    Time in a subset ISO 8601 format, with no date and no time zone. For example: "08:15:27".
    time.tz datatype
    Time in a subset ISO 8601 format, with no date but optional time zone. For example: "08:1527-05:00".
    i1 datatype
    Integer represented in one byte. A number, with optional sign, no fractions, no exponent. For example: "1, 127, -128".
    i2 datatype
    Integer represented in one word. A number, with optional sign, no fractions, no exponent. For example: "1, 703, -32768".
    i4 datatype
    Integer represented in four bytes. A number, with optional sign, no fractions, no exponent. For example: "1, 703, -32768, 148343, -1000000000".
    r4 datatype
    Real number, with seven digit precision; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 3.40282347E+38F to 1.17549435E-38F.
    r8
    Real number, with 15 digit precision; can potentially have a leading sign, fractional digits, and optionally an exponent. Punctuation as in U.S. English. Values range from 1.7976931348623157E+308 to 2.2250738585072014E-308.
    ui1 datatype
    Unsigned integer. A number, unsigned, no fractions, no exponent. For example: "1, 255".
    ui2 datatype
    Unsigned integer, two bytes. A number, unsigned, no fractions, no exponent. For example: "1, 255, 65535".
    ui4 datatype
    Unsigned integer, four bytes. A number, unsigned, no fractions, no exponent. For example: "1, 703, 3000000000".
    uri datatype
    Universal Resource Identifier (URI). For example, "urn:schemas-microsoft-com:Office9".
    uuid datatype
    Hexadecimal digits representing octets, optional embedded hyphens that are ignored. For example: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

Children