docs: function generateCustomPointerClasses() {
    var arrayTypes = _.pluck(_.values(xml2js.ARRAY_TYPEMAPS), 'arrayType');
    var pointerTypes = _.uniq(_.flatten(_.map(_.values(xml2js.POINTER_TYPEMAPS), _.values)));
    _.each(arrayTypes, function(arrayType) {
      var dataType = _.findKey(xml2js.ARRAY_TYPEMAPS, function(to) { return to.arrayType == arrayType; });
      xml2js.CLASSES[arrayType] = {
        description: 'Array of type ' + dataType + '.',
        enums: {},
        enums_by_group: {},
        variables: {},
        methods: {}
      };
      xml2js.CLASSES[arrayType].methods[arrayType] = {
        description: 'Instantiates the array.',
        params: {
          nelements: {
            type: 'Number',
            description: 'number of elements in the array'
          }
        },
        return: {}
      };
      xml2js.CLASSES[arrayType].methods.getitem = {
        description: 'Access a particular element in the array.',
        params: {
          index: {
            type: 'Number',
            description: 'index of array to read from'
          },
        },
        return: {
          type: getType(dataType),
          description: 'the value of the element found at the given index of the array'
        }
      };
      xml2js.CLASSES[arrayType].methods.setitem = {
        description: 'Modify a particular element in the array.',
        params: {
          index: {
            type: 'Number',
            description: 'index of array to write to'
          },
          value: {
            type: getType(dataType),
            description: 'the value to set the element found at the given index of the array'
          }
        },
        return: {}
      };
    });
    var pointerDataTypeMap = _.reduce(_.map(_.values(xml2js.POINTER_TYPEMAPS), _.invert), function(memo, typemap) {
      return _.extend(memo, typemap);
    }, {});
    _.each(pointerTypes, function(pointerType) {
      var dataType = pointerDataTypeMap[pointerType];
      xml2js.CLASSES[pointerType] = {
        description: 'Proxy object to data of type ' + dataType + '.',
        enums: {},
        enums_by_group: {},
        variables: {},
        methods: {}
      };
      xml2js.CLASSES[pointerType].methods[pointerType] = {
        description: 'Instantiates the proxy object.',
        params: {},
        return: {}
      };
      xml2js.CLASSES[pointerType].methods.value = {
        description: 'Get the value of the object.',
        params: {},
        return: {
          type: getType(dataType),
          description: 'the value of the object'
        }
      };
      xml2js.CLASSES[pointerType].methods.assign = {
        description: 'Set the value of the object.',
        params: {
          value: {
            type: getType(dataType),
            description: 'the value to set the object to'
          }
        },
        return: {}
      };
    });
  }