00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef BXBINXSCHEMA_H
00017 #define BXBINXSCHEMA_H
00018
00019 #include "BxObject.h"
00020
00021
00022
00023 enum BxBinxTagNumber
00024 {
00025 BX_TAG_NULL = 0,
00026 BX_TAG_ROOT,
00027 BX_TAG_PARAMETERS,
00028 BX_TAG_DEFINITIONS,
00029 BX_TAG_DATASET,
00030 BX_TAG_DEFINETYPE,
00031 BX_TAG_USETYPE,
00032 BX_TAG_STRUCT,
00033 BX_TAG_UNION,
00034 BX_TAG_ARRAY,
00035 BX_TAG_ARRAYFIXED,
00036 BX_TAG_ARRAYVARIABLE,
00037 BX_TAG_ARRAYSTREAMED,
00038 BX_TAG_ARRAYDATA,
00039 BX_TAG_DIMENSION,
00040 BX_TAG_DIMVARIABLE,
00041 BX_TAG_DIMSTREAMED,
00042 BX_TAG_VARRAYSIZE,
00043 BX_TAG_DATATYPE,
00044 BX_TAG_BIT1,
00045 BX_TAG_BYTE8,
00046 BX_TAG_CHARACTER8,
00047 BX_TAG_UNICODE16,
00048 BX_TAG_UNICODE32,
00049 BX_TAG_ENUM32,
00050 BX_TAG_SHORT16,
00051 BX_TAG_INTEGER32,
00052 BX_TAG_LONG64,
00053 BX_TAG_UNSIGNEDBYTE8,
00054 BX_TAG_UNSIGNEDSHORT16,
00055 BX_TAG_UNSIGNEDINTEGER32,
00056 BX_TAG_UNSIGNEDLONG64,
00057 BX_TAG_FLOAT32,
00058 BX_TAG_DOUBLE64,
00059 BX_TAG_EXTENDED80,
00060 BX_TAG_EXTENDED96,
00061 BX_TAG_QUADRUPLE128,
00062 BX_TAG_VOID0,
00063 BX_TAG_DISCRIMINANT,
00064 BX_TAG_VAL,
00065 BX_TAG_CASE,
00066 BX_TAG_DEFINETYPE_SYN,
00067 BX_TAG_USETYPE_SYN,
00068 BX_TAG_DATASET_FILE,
00069 BX_TAG_SYN1,
00070 BX_TAG_SYN2,
00071 BX_TAG_SYN3,
00072 BX_TAG_SYN4,
00073 BX_TAG_SYN5,
00074 BX_TAG_SYN6,
00075 BX_TAG_SYN7,
00076 BX_TAG_SYN8,
00077 BX_TAG_SYN9,
00078 BX_TAG_DATABINX,
00079 BX_TAG_STRING,
00080 BX_TAG_END
00081 };
00082
00083 struct BxBinxTagTable
00084 {
00085 BxBinxTagNumber number_;
00086 char* name_;
00087 };
00088
00107 class BxBinxSchema : public BxObject
00108 {
00109 public:
00110
00111 BxBinxSchema();
00112
00113
00114 virtual ~BxBinxSchema() {}
00115
00116 static BxBinxTagNumber search(const char* const tag);
00117 static const char* searchTagByDataClass(int dataclass);
00118
00119 static const BxBinxTagTable tags[];
00120
00121 static const char* xmlHeader;
00122 static const char* binxNameSpace;
00123 static const char* databinxNameSpace;
00124
00125 static const char* attrTypeName;
00126 static const char* attrVarName;
00127 static const char* attrTestValue;
00128 static const char* attrIndexFrom;
00129 static const char* attrIndexTo;
00130 static const char* attrCount;
00131 static const char* attrIndex;
00132 static const char* attrName;
00133 static const char* attrValue;
00134 static const char* attrSrc;
00135 static const char* attrByteOrder;
00136 static const char* attrBitOrder;
00137 static const char* attrBlockSize;
00138 static const char* attrDim;
00139 static const char* attrIgnore;
00140 static const char* attrKey;
00141 static const char* attrInfo;
00142 static const char* attrOffset;
00143 static const char* attrDiscriminantValue;
00144 static const char* attrXref;
00145 static const char* attrType;
00146 static const char* attrSize;
00147 static const char* attrDelim;
00148 static const char* attrSizeType;
00149
00150 static const char* valBigEndian;
00151 static const char* valLittleEndian;
00152 static const char* valFixed;
00153 static const char* valVariable;
00154 static const char* valStreamed;
00155 };
00156
00157 #endif