The undocumented datatypes INT5 and INT7 work fine on OpenVMS and probably on all platforms.

They round out the documents series INT1, INT2, INT3, INT4, INT6 and INT8
(As well as their close cousins: UINT5, UINT7 and SCALED_INT5, SCALED_INT7 )

Test:

Code:
$ create tmp.xml
<?xml version='1.0' encoding='ISO-8859-1'?>
  <navobj version='5.3.3.5'>
    <table name='tmp' datasource='TEST' fileName='data:[tmp]tmp.tmp'>
        <fields>
            <field name='i1' datatype='int1' />
            <field name='i2' datatype='int1' />
            <field name='i3' datatype='int1' />
            <field name='i4' datatype='int1' />
            <field name='i5' datatype='int1' />
            <field name='i6' datatype='int1' />
            <field name='i7' datatype='int1' />
            <field name='i8' datatype='int1' />
            <field name='int1' datatype='int1' offset='0'/>
            <field name='int2' datatype='int2' offset='0'/>
            <field name='int3' datatype='int3' offset='0'/>
            <field name='int4' datatype='int4' offset='0'/>
            <field name='int5' datatype='int5' offset='0'/>
            <field name='int6' datatype='int6' offset='0'/>
            <field name='int7' datatype='int7' offset='0'/>
            <field name='int8' datatype='int8' offset='0'/>
        </fields>
    </table>
  </navobj>

nav_util import <ds> tmp.xml
nav_util exucute <ds>
SQL> insert into tmp (i1,i2,i3,i4,i5,i6,i7,i8) values ( 1,2,3,4,5,6,7,8 );
SQL> select int1,int2,int3,int4,int5,int6,int7,int8 from tmp;

int1      int2        int3             int4             int5               int6                 int7                   int8

1         513         197121           67305985         21542142465        6618611909121        1976943448883713       578437695752307201
Unfortunately, nor DCL, not PERL readily convert numbers larger than 32 bits to hex to verify.
Code:
$ perl -e "printf qq(%lx %lx %lx %lx %lx %lx %lx %lx\n),1,513,197121,67305985,21542142465,6618611909121,1976943448883713,578437695752307201"
1 201 30201 4030201 ffffffff ffffffff ffffffff ffffffff
$ write sys$output f$fao("!XQ",67305985)
0000000004030201
$ write sys$output f$fao("!XQ",578437695752307201)
0000000003D7A601
Pick up the ZIP with 'bigcalc' from https://github.com/alan-fay/openvms
Code:
$ bigcalc/hex 578437695752307201
   807 0605 0403 0201
$


Or create a silly program like so:

Code:
$create tmp.c
#include  <stdlib.h>
#include  <stdio.h>
long long x;


main() {
    while (0 < scanf("%lld", &x)) {
        printf ("%25s 0x%0llx\n", "--> ", x);
    }
}
$ cc tmp
$ link tmp
$ run tmp21542142465
                     -->  0x504030201
6618611909121
                     -->  0x60504030201
1976943448883713
                     -->  0x7060504030201
578437695752307201
                     -->  0x807060504030201