float *rng_min;      /* If not NULL, then native floating-point simple attribute wiht the name "RangeMin" */
 
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Copyright by The HDF Group                                                *
 * All rights reserved.                                                      *
 *                                                                           *
 * This file is part of h5augjpss. The full h5augjpss copyright notice,      *
 * including terms governing use, modification, and redistribution, is       *
 * contained in the file COPYING, which can be found at the root of the      *
 * source code distribution tree.  If you do not  have access to this        *
 * file, you may request a copy from help@hdfgroup.org.                      *
 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 */
/* 
 * This file contains definitions for the HDF5 data structures
 * used to store information extracted from the NPOESS XML product file
 */
#include "hdf5.h"
#include <string.h>
#ifndef _H5AUGJPSS_H
#define _H5AUGJPSS_H
#define H5AJ_MAX_DIMS 4 
#define H5AJ_MAX_DATUMS 8 
/* 
 * XML Dim Type type corresponds to an HDF5 dimension; attributes on a dimension
 * are the attributes on the corresponding HDF5 dataset that represents dimension. 
 */
typedef struct {
    char    *name;   /*  Dimension name; corresponds to the HDF5 dataset of native integer datatype 
                         and size maxidx.  Note: According to the *.xsd file it may be optional, so 
                         we will need to use some generated name if it is missing  */
    int     *bound;  /*  If not NULL, attribute "GranuleBoundary" of the native integer type 
                         with the values 1 or 0 is created */
    int     dynamic; /*  Attribute "Dynamic" of the native integer type with the values 1 or 0 is created */ 
    int     minidx;  /*  Min index */ 
    int     maxidx;  /*  Max index; should be equal to minidx, because otherwise we don't know what
                         we are doing, and what should be size of the dimension dataset :-) */ 
} H5aj_dim_t;
/*
 * XML Fill Value type; mapped as a simple attribute with the name FillValue_<name>; attribute's
 * datatype should be the same as of the corresponding dataset (the one to which Field is mapped to) 
 */
typedef struct {
    char *name;      /* JPSS-XML Fill value name; is used to construct HDF5 attribute name */
    double value;    /* This should be written to HDF5 using the proper type, i.e., XML parser will 
                        read into double type and the HDF5 writer will cast it to the proper type */
} H5aj_fillval_t;