Example #1
0
TagPtr_t getTagTable(SmlPcdataExtension_t ext)
{
  #ifndef NOWSM
  int mySize = 0;
  TagPtr_t _tmpTagPtr;
  SyncMLInfoPtr_t pGA = NULL;
  #else
  TagPtr_t _tmpTagPtr=NULL;
  #endif
  /* standard SyncML codepage */
  static const Tag_t syncml[] =
  {
    { _TOKEN(TN_ADD,                0x05,    "Add")},
    { _TOKEN(TN_ALERT,              0x06,    "Alert")},
    { _TOKEN(TN_ARCHIVE,            0x07,    "Archive")},
    { _TOKEN(TN_ATOMIC,             0x08,    "Atomic")},
    { _TOKEN(TN_CHAL,               0x09,    "Chal")},
    { _TOKEN(TN_CMD,                0x0A,    "Cmd")},
    { _TOKEN(TN_CMDID,              0x0B,    "CmdID")},
    { _TOKEN(TN_CMDREF,             0x0C,    "CmdRef")},
    { _TOKEN(TN_COPY,               0x0D,    "Copy")},
    { _TOKEN(TN_CRED,               0x0E,    "Cred")},
    { _TOKEN(TN_DATA,               0x0F,    "Data")},
    { _TOKEN(TN_DELETE,             0x10,    "Delete")},
    { _TOKEN(TN_EXEC,               0x11,    "Exec")},
    { _TOKEN(TN_FINAL,              0x12,    "Final")},
    { _TOKEN(TN_GET,                0x13,    "Get")},
    { _TOKEN(TN_ITEM,               0x14,    "Item")},
    { _TOKEN(TN_LANG,               0x15,    "Lang")},
    { _TOKEN(TN_LOCNAME,            0x16,    "LocName")},
    { _TOKEN(TN_LOCURI,             0x17,    "LocURI")},
    { _TOKEN(TN_MAP,                0x18,    "Map")},
    { _TOKEN(TN_MAPITEM,            0x19,    "MapItem")},
    { _TOKEN(TN_META,               0x1A,    "Meta")},
    { _TOKEN(TN_MSGID,              0x1B,    "MsgID")},
    { _TOKEN(TN_MSGREF,             0x1C,    "MsgRef")},
    { _TOKEN(TN_NORESP,             0x1D,    "NoResp")},
    { _TOKEN(TN_NORESULTS,          0x1E,    "NoResults")},
    { _TOKEN(TN_PUT,                0x1F,    "Put")},
    { _TOKEN(TN_REPLACE,            0x20,    "Replace")},
    { _TOKEN(TN_RESPURI,            0x21,    "RespURI")},
    { _TOKEN(TN_RESULTS,            0x22,    "Results")},
    { _TOKEN(TN_SEARCH,             0x23,    "Search")},
    { _TOKEN(TN_SEQUENCE,           0x24,    "Sequence")},
    { _TOKEN(TN_SESSIONID,          0x25,    "SessionID")},
    { _TOKEN(TN_SFTDEL,             0x26,    "SftDel")},
    { _TOKEN(TN_SOURCE,             0x27,    "Source")},
    { _TOKEN(TN_SOURCEREF,          0x28,    "SourceRef")},
    { _TOKEN(TN_STATUS,             0x29,    "Status")},
    { _TOKEN(TN_SYNC,               0x2A,    "Sync")},
    { _TOKEN(TN_SYNCBODY,           0x2B,    "SyncBody")},
    { _TOKEN(TN_SYNCHDR,            0x2C,    "SyncHdr")},
    { _TOKEN(TN_SYNCML,             0x2D,    "SyncML")},
    { _TOKEN(TN_TARGET,             0x2E,    "Target")},
    { _TOKEN(TN_TARGETREF,          0x2F,    "TargetRef")},
    { _TOKEN(TN_VERSION,            0x31,    "VerDTD")},
    { _TOKEN(TN_PROTO,              0x32,    "VerProto")},
    /* SyncML DS 1.1 */
    { _TOKEN(TN_NUMBEROFCHANGES,    0x33,    "NumberOfChanges")},
    { _TOKEN(TN_MOREDATA,           0x34,    "MoreData")},
    /* SyncML DS 1.2, Synthesis/luz 2005-08-17 */
    { _TOKEN(TN_FIELD,              0x35,    "Field")},
    { _TOKEN(TN_FILTER,             0x36,    "Filter")},
    { _TOKEN(TN_RECORD,             0x37,    "Record")},
    { _TOKEN(TN_FILTERTYPE,         0x38,    "FilterType")},
    { _TOKEN(TN_SOURCEPARENT,       0x39,    "SourceParent")},
    { _TOKEN(TN_TARGETPARENT,       0x3A,    "TargetParent")},
    { _TOKEN(TN_MOVE,               0x3B,    "Move")},
    { _TOKEN(TN_CORRELATOR,         0x3C,    "Correlator")},
    /* End of table */
    { _TOKEN(TN_UNDEF,              0x00,    NULL)}
  };

  #ifdef __USE_METINF__
  static const Tag_t metinf[] =  {
    { _TOKEN(TN_METINF_ANCHOR,      0x05,    "Anchor")},
    { _TOKEN(TN_METINF_EMI,         0x06,    "EMI")},
    { _TOKEN(TN_METINF_FORMAT,      0x07,    "Format")},
    { _TOKEN(TN_METINF_FREEID,      0x08,    "FreeID")},
    { _TOKEN(TN_METINF_FREEMEM,     0x09,    "FreeMem")},
    { _TOKEN(TN_METINF_LAST,        0x0A,    "Last")},
    { _TOKEN(TN_METINF_MARK,        0x0B,    "Mark")},
    { _TOKEN(TN_METINF_MAXMSGSIZE,  0x0C,    "MaxMsgSize")},
    { _TOKEN(TN_METINF_MEM,         0x0D,    "Mem")},
    { _TOKEN(TN_METINF_METINF,      0x0E,    "MetInf")},
    { _TOKEN(TN_METINF_NEXT,        0x0F,    "Next")},
    { _TOKEN(TN_METINF_NEXTNONCE,   0x10,    "NextNonce")},
    { _TOKEN(TN_METINF_SHAREDMEM,   0x11,    "SharedMem")},
    { _TOKEN(TN_METINF_SIZE,        0x12,    "Size")},
    { _TOKEN(TN_METINF_TYPE,        0x13,    "Type")},
    { _TOKEN(TN_METINF_VERSION,     0x14,    "Version")},
    /* SCTSTK - 18/03/2002, S.H. 2002-04-05 : SyncML 1.1 */
    { _TOKEN(TN_METINF_MAXOBJSIZE,  0x15,    "MaxObjSize")},
    /* SyncML DS 1.2, Synthesis/luz 2005-08-17 */
    { _TOKEN(TN_METINF_FIELDLEVEL,  0x16,    "FieldLevel")},
    /* End of table */
    { _TOKEN(TN_UNDEF,              0x00,    NULL)}
  };
  #endif


  #ifdef __USE_DEVINF__
  static const Tag_t devinf[] = {
    {_TOKEN(TN_DEVINF_CTCAP,        0x05,    "CTCap")},
    {_TOKEN(TN_DEVINF_CTTYPE,       0x06,    "CTType")},
    {_TOKEN(TN_DEVINF_DATASTORE,    0x07,    "DataStore")},
    {_TOKEN(TN_DEVINF_DATATYPE,     0x08,    "DataType")},
    {_TOKEN(TN_DEVINF_DEVID,        0x09,    "DevID")},
    {_TOKEN(TN_DEVINF_DEVINF,       0x0A,    "DevInf")},
    {_TOKEN(TN_DEVINF_DEVTYP,       0x0B,    "DevTyp")},
    {_TOKEN(TN_DEVINF_DISPLAYNAME,  0x0C,    "DisplayName")},
    {_TOKEN(TN_DEVINF_DSMEM,        0x0D,    "DSMem")},
    {_TOKEN(TN_DEVINF_EXT,          0x0E,    "Ext")},
    {_TOKEN(TN_DEVINF_FWV,          0x0F,    "FwV")},
    {_TOKEN(TN_DEVINF_HWV,          0x10,    "HwV")},
    {_TOKEN(TN_DEVINF_MAN,          0x11,    "Man")},
    {_TOKEN(TN_DEVINF_MAXGUIDSIZE,  0x12,    "MaxGUIDSize")},
    {_TOKEN(TN_DEVINF_MAXID,        0x13,    "MaxID")},
    {_TOKEN(TN_DEVINF_MAXMEM,       0x14,    "MaxMem")},
    {_TOKEN(TN_DEVINF_MOD,          0x15,    "Mod")},
    {_TOKEN(TN_DEVINF_OEM,          0x16,    "OEM")},
    {_TOKEN(TN_DEVINF_PARAMNAME,    0x17,    "ParamName")},
    {_TOKEN(TN_DEVINF_PROPNAME,     0x18,    "PropName")},
    {_TOKEN(TN_DEVINF_RX,           0x19,    "Rx")},
    {_TOKEN(TN_DEVINF_RXPREF,       0x1A,    "Rx-Pref")},
    {_TOKEN(TN_DEVINF_SHAREDMEM,    0x1B,    "SharedMem")},
    {_TOKEN(TN_DEVINF_SIZE,         0x1C,    "Size")},
    {_TOKEN(TN_DEVINF_SOURCEREF,    0x1D,    "SourceRef")},
    {_TOKEN(TN_DEVINF_SWV,          0x1E,    "SwV")},
    {_TOKEN(TN_DEVINF_SYNCCAP,      0x1F,    "SyncCap")},
    {_TOKEN(TN_DEVINF_SYNCTYPE,     0x20,    "SyncType")},
    {_TOKEN(TN_DEVINF_TX,           0x21,    "Tx")},
    {_TOKEN(TN_DEVINF_TXPREF,       0x22,    "Tx-Pref")},
    {_TOKEN(TN_DEVINF_VALENUM,      0x23,    "ValEnum")},
    {_TOKEN(TN_DEVINF_VERCT,        0x24,    "VerCT")},
    {_TOKEN(TN_DEVINF_VERDTD,       0x25,    "VerDTD")},
    {_TOKEN(TN_DEVINF_XNAM,         0x26,    "XNam")},
    {_TOKEN(TN_DEVINF_XVAL,         0x27,    "XVal")},
    /* %%% luz:2003-04-28 : added these SyncML 1.2 tags, they were missing */
    {_TOKEN(TN_DEVINF_UTC,          0x28,    "UTC")},
    {_TOKEN(TN_DEVINF_NOFM,         0x29,    "SupportNumberOfChanges")},
    {_TOKEN(TN_DEVINF_LARGEOBJECT,  0x2A,    "SupportLargeObjs")},
    /* SyncML DS 1.2, Synthesis/luz 2005-08-17 */
    {_TOKEN(TN_DEVINF_PROPERTY,     0x2B,    "Property")},
    {_TOKEN(TN_DEVINF_PROPPARAM,    0x2C,    "PropParam")},
    {_TOKEN(TN_DEVINF_MAXOCCUR,     0x2D,    "MaxOccur")},
    {_TOKEN(TN_DEVINF_NOTRUNCATE,   0x2E,    "NoTruncate")},
    {_TOKEN(TN_DEVINF_FILTERRX,     0x30,    "Filter-Rx")},
    {_TOKEN(TN_DEVINF_FILTERCAP,    0x31,    "FilterCap")},
    {_TOKEN(TN_DEVINF_FILTERKEYWORD,0x32,    "FilterKeyword")},
    {_TOKEN(TN_DEVINF_FIELDLEVEL,   0x33,    "FieldLevel")},
    {_TOKEN(TN_DEVINF_HIERARCHICAL, 0x34,    "SupportHierarchicalSync")},
    {_TOKEN(TN_DEVINF_MAXSIZE,      0x1C,    "MaxSize")}, // alias for TN_DEVINF_SIZE (same WBXML, different XML)
    /* End of table */    									
    {_TOKEN(TN_UNDEF,               0x00,  NULL)}
  };
  #endif

  #ifndef NOWSM
  _tmpTagPtr = NULL;
  pGA = mgrGetSyncMLAnchor();
  if (pGA == NULL) return NULL;
  #endif

  /* get the correct codepage */
  if (ext == SML_EXT_UNDEFINED) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->SyncML;
    if (_tmpTagPtr == NULL) {
      mySize = sizeof(syncml);
      pGA->tokTbl->SyncML = (TagPtr_t)smlLibMalloc(mySize);
      if (pGA->tokTbl->SyncML == NULL) return NULL;
      smlLibMemcpy(pGA->tokTbl->SyncML, &syncml, mySize);
      _tmpTagPtr = pGA->tokTbl->SyncML;
    }
    #else
    _tmpTagPtr=(TagPtr_t)syncml;
    #endif
  }

  #ifdef __USE_METINF__
  else if (ext == SML_EXT_METINF) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->MetInf;
    if (_tmpTagPtr == NULL) {
      mySize = sizeof(metinf);
      pGA->tokTbl->MetInf = (TagPtr_t)smlLibMalloc(mySize);
      if (pGA->tokTbl->MetInf == NULL) return NULL;
      smlLibMemcpy(pGA->tokTbl->MetInf, &metinf, mySize);
      _tmpTagPtr = pGA->tokTbl->MetInf;
    }
    #else
    _tmpTagPtr=(TagPtr_t)metinf;
    #endif
  }
  #endif

  #ifdef __USE_DEVINF__
  else if (ext == SML_EXT_DEVINF) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->DevInf;
    if (_tmpTagPtr == NULL) {
      mySize = sizeof(devinf);
      pGA->tokTbl->DevInf = (TagPtr_t)smlLibMalloc(mySize);
      if (pGA->tokTbl->DevInf == NULL) return NULL;
      smlLibMemcpy(pGA->tokTbl->DevInf, &devinf, mySize);
      _tmpTagPtr = pGA->tokTbl->DevInf;
    }
    #else
    _tmpTagPtr=(TagPtr_t)devinf;
    #endif
  }
  #endif
  return _tmpTagPtr;
}
Example #2
0
const // without WSM, the tag table is a global read-only constant
#endif
TagPtr_t getTagTable(SmlPcdataExtension_t ext)
{
  #ifndef NOWSM
  int mySize = 0;
  TagPtr_t _tmpTagPtr;
  SyncMLInfoPtr_t pGA = NULL;
  #else
  TagPtr_t _tmpTagPtr=NULL;
  #endif
  /* standard SyncML codepage */
  static const Tag_t syncml[] =
  {
    { _TOKEN(TN_ADD,            0x05,    "Add")},
    { _TOKEN(TN_ALERT,          0x06,    "Alert")},
    { _TOKEN(TN_ARCHIVE,        0x07,    "Archive")},
    { _TOKEN(TN_ATOMIC,         0x08,    "Atomic")},
    { _TOKEN(TN_CHAL,           0x09,    "Chal")},
    { _TOKEN(TN_CMD,            0x0A,    "Cmd")},
    { _TOKEN(TN_CMDID,          0x0B,    "CmdID")},
    { _TOKEN(TN_CMDREF,         0x0C,    "CmdRef")},
    { _TOKEN(TN_COPY,           0x0D,    "Copy")},
    { _TOKEN(TN_CRED,           0x0E,    "Cred")},
    { _TOKEN(TN_DATA,           0x0F,    "Data")},
    { _TOKEN(TN_DELETE,         0x10,    "Delete")},
    { _TOKEN(TN_EXEC,           0x11,    "Exec")},
    { _TOKEN(TN_FINAL,          0x12,    "Final")},
    { _TOKEN(TN_GET,            0x13,    "Get")},
    { _TOKEN(TN_ITEM,           0x14,    "Item")},
    { _TOKEN(TN_LANG,           0x15,    "Lang")},
    { _TOKEN(TN_LOCNAME,        0x16,    "LocName")},
    { _TOKEN(TN_LOCURI,         0x17,    "LocURI")},
    { _TOKEN(TN_MAP,            0x18,    "Map")},
    { _TOKEN(TN_MAPITEM,        0x19,    "MapItem")},
    { _TOKEN(TN_META,           0x1A,    "Meta")},
    { _TOKEN(TN_MSGID,          0x1B,    "MsgID")},
    { _TOKEN(TN_MSGREF,         0x1C,    "MsgRef")},
    { _TOKEN(TN_NORESP,         0x1D,    "NoResp")},
    { _TOKEN(TN_NORESULTS,      0x1E,    "NoResults")},
    { _TOKEN(TN_PUT,            0x1F,    "Put")},
    { _TOKEN(TN_REPLACE,        0x20,    "Replace")},
    { _TOKEN(TN_RESPURI,        0x21,    "RespURI")},
    { _TOKEN(TN_RESULTS,        0x22,    "Results")},
    { _TOKEN(TN_SEARCH,         0x23,    "Search")},
    { _TOKEN(TN_SEQUENCE,       0x24,    "Sequence")},
    { _TOKEN(TN_SESSIONID,      0x25,    "SessionID")},
    { _TOKEN(TN_SFTDEL,         0x26,    "SftDel")},
    { _TOKEN(TN_SOURCE,         0x27,    "Source")},
    { _TOKEN(TN_SOURCEREF,      0x28,    "SourceRef")},
    { _TOKEN(TN_STATUS,         0x29,    "Status")},
    { _TOKEN(TN_SYNC,           0x2A,    "Sync")},
    { _TOKEN(TN_SYNCBODY,       0x2B,    "SyncBody")},
    { _TOKEN(TN_SYNCHDR,        0x2C,    "SyncHdr")},
    { _TOKEN(TN_SYNCML,         0x2D,    "SyncML")},
    { _TOKEN(TN_TARGET,         0x2E,    "Target")},
    { _TOKEN(TN_TARGETREF,      0x2F,    "TargetRef")},
    { _TOKEN(TN_VERSION,        0x31,    "VerDTD")},
    { _TOKEN(TN_PROTO,          0x32,    "VerProto")},
    { _TOKEN(TN_NUMBEROFCHANGES,0x33,    "NumberOfChanges")},
		{ _TOKEN(TN_MOREDATA,       0x34,    "MoreData")},
	/* from version 1.2 */
    { _TOKEN(TN_CORRELATOR,          0x3C,    "Correlator")},
		
    { _TOKEN(TN_UNDEF,          0x00,    NULL)}
  };

  #ifdef __USE_METINF__
	static const Tag_t metinf[] =  {
    { _TOKEN(TN_METINF_ANCHOR,      0x05,	"Anchor")},
    { _TOKEN(TN_METINF_EMI,		      0x06,   "EMI")},
    { _TOKEN(TN_METINF_FORMAT,		  0x07,	"Format")},
    { _TOKEN(TN_METINF_FREEID,		  0x08,	"FreeID")},
    { _TOKEN(TN_METINF_FREEMEM,	    0x09,	"FreeMem")},
    { _TOKEN(TN_METINF_LAST,     	  0x0A,	"Last")},
    { _TOKEN(TN_METINF_MARK,		    0x0B,	"Mark")},
    { _TOKEN(TN_METINF_MAXMSGSIZE,  0x0C,	"MaxMsgSize")},
    { _TOKEN(TN_METINF_MEM,		      0x0D,	"Mem")},
    { _TOKEN(TN_METINF_METINF,		  0x0E,	"MetInf")},
    { _TOKEN(TN_METINF_NEXT,		    0x0F,	"Next")},
    { _TOKEN(TN_METINF_NEXTNONCE,	  0x10,	"NextNonce")},
    { _TOKEN(TN_METINF_SHAREDMEM,	  0x11,	"SharedMem")},
    { _TOKEN(TN_METINF_SIZE,		    0x12,	"Size")},
    { _TOKEN(TN_METINF_TYPE,		    0x13,	"Type")},
    { _TOKEN(TN_METINF_VERSION,	    0x14,	"Version")},
		/* SCTSTK - 18/03/2002, S.H. 2002-04-05 : SyncML 1.1 */
    { _TOKEN(TN_METINF_MAXOBJSIZE,	0x15,	"MaxObjSize")},
    { _TOKEN(TN_UNDEF,				      0x00,	NULL)}
	};
  #endif


  #ifdef __USE_DEVINF__
  static const Tag_t devinf[] = {
    {_TOKEN(TN_DEVINF_CTCAP,       0x05,   "CTCap")},
    {_TOKEN(TN_DEVINF_CTTYPE,      0x06,   "CTType")},
    {_TOKEN(TN_DEVINF_DATASTORE,   0x07,   "DataStore")},
    {_TOKEN(TN_DEVINF_DATATYPE,    0x08,   "DataType")},
    {_TOKEN(TN_DEVINF_DEVID,       0x09,   "DevID")},
    {_TOKEN(TN_DEVINF_DEVINF,      0x0A,   "DevInf")},
    {_TOKEN(TN_DEVINF_DEVTYP,      0x0B,   "DevTyp")},
    {_TOKEN(TN_DEVINF_DISPLAYNAME, 0x0C,   "DisplayName")},
    {_TOKEN(TN_DEVINF_DSMEM,       0x0D,   "DSMem")},
    {_TOKEN(TN_DEVINF_EXT,         0x0E,   "Ext")},
    {_TOKEN(TN_DEVINF_FWV,         0x0F,   "FwV")},
    {_TOKEN(TN_DEVINF_HWV,         0x10,   "HwV")},
    {_TOKEN(TN_DEVINF_MAN,         0x11,   "Man")},
    {_TOKEN(TN_DEVINF_MAXGUIDSIZE, 0x12,   "MaxGUIDSize")},
    {_TOKEN(TN_DEVINF_MAXID,       0x13,   "MaxID")},
    {_TOKEN(TN_DEVINF_MAXMEM,      0x14,   "MaxMem")},
    {_TOKEN(TN_DEVINF_MOD,         0x15,   "Mod")},
    {_TOKEN(TN_DEVINF_OEM,         0x16,   "OEM")},
    {_TOKEN(TN_DEVINF_PARAMNAME,   0x17,   "ParamName")},
    {_TOKEN(TN_DEVINF_PROPNAME,    0x18,   "PropName")},
    {_TOKEN(TN_DEVINF_RX,          0x19,   "Rx")},
    {_TOKEN(TN_DEVINF_RXPREF,      0x1A,   "Rx-Pref")},
    {_TOKEN(TN_DEVINF_SHAREDMEM,   0x1B,   "SharedMem")},
    {_TOKEN(TN_DEVINF_SIZE,        0x1C,   "Size")},
    {_TOKEN(TN_DEVINF_SOURCEREF,   0x1D,   "SourceRef")},
    {_TOKEN(TN_DEVINF_SWV,         0x1E,   "SwV")},
    {_TOKEN(TN_DEVINF_SYNCCAP,     0x1F,   "SyncCap")},
    {_TOKEN(TN_DEVINF_SYNCTYPE,    0x20,   "SyncType")},
    {_TOKEN(TN_DEVINF_TX,          0x21,   "Tx")},
    {_TOKEN(TN_DEVINF_TXPREF,      0x22,   "Tx-Pref")},
    {_TOKEN(TN_DEVINF_VALENUM,     0x23,   "ValEnum")},
    {_TOKEN(TN_DEVINF_VERCT,       0x24,   "VerCT")},
    {_TOKEN(TN_DEVINF_VERDTD,      0x25,   "VerDTD")},
    {_TOKEN(TN_DEVINF_XNAM,        0x26,   "XNam")},
    {_TOKEN(TN_DEVINF_XVAL,        0x27,   "XVal")},
    // %%% luz:2003-04-28 : added these, they were missing
    {_TOKEN(TN_DEVINF_UTC,         0x28,   "UTC")},
    {_TOKEN(TN_DEVINF_NOFM,        0x29,   "SupportNumberOfChanges")},
    {_TOKEN(TN_DEVINF_LARGEOBJECT, 0x2A,   "SupportLargeObjs")},
    // %%% end luz    
    { _TOKEN(TN_UNDEF,			       0x00,	NULL)}
  };
  #endif

  #ifdef __USE_DMTND__
  static const Tag_t dmtnd[] =  {
    { _TOKEN(TN_DMTND_AccessType,   0x05,     "AccessType")}, 
    { _TOKEN(TN_DMTND_ACL,          0x06,     "ACL")},
    { _TOKEN(TN_DMTND_Add,          0x07,     "Add")},
    { _TOKEN(TN_DMTND_b64,          0x08,     "b64")},
    { _TOKEN(TN_DMTND_bin,          0x09,     "bin")},
    { _TOKEN(TN_DMTND_bool,         0x0A,     "bool")},
    { _TOKEN(TN_DMTND_chr,          0x0B,     "chr")},
    { _TOKEN(TN_DMTND_CaseSense,    0x0C,     "CaseSense")},
    { _TOKEN(TN_DMTND_CIS,          0x0D,     "CIS")},
    { _TOKEN(TN_DMTND_Copy,         0x0E,     "Copy")},
    { _TOKEN(TN_DMTND_CS,           0x0F,     "CS")},
    { _TOKEN(TN_DMTND_date,         0x10,     "date")},
    { _TOKEN(TN_DMTND_DDFName,      0x11,     "DDFName")},
    { _TOKEN(TN_DMTND_DefaultValue, 0x12,     "DefaultValue")},
    { _TOKEN(TN_DMTND_Delete,       0x13,     "Delete")},
    { _TOKEN(TN_DMTND_Description,  0x14,     "Description")},
    { _TOKEN(TN_DMTND_DFFormat,     0x15,     "DFFormat")},
    { _TOKEN(TN_DMTND_DFProperties, 0x16,     "DFProperties")},  
    { _TOKEN(TN_DMTND_DFTitle,      0x17,     "DFTitle")},
    { _TOKEN(TN_DMTND_DFType,       0x18,     "DFType")},
    { _TOKEN(TN_DMTND_Dynamic,      0x19,     "Dynamic")},
    { _TOKEN(TN_DMTND_Exec,         0x1A,     "Exec")},
    { _TOKEN(TN_DMTND_float,        0x1B,     "float")},
    { _TOKEN(TN_DMTND_Format,       0x1C,     "Format")},
    { _TOKEN(TN_DMTND_Get,          0x1D,     "Get")},
    { _TOKEN(TN_DMTND_int,          0x1E,     "int")},
    { _TOKEN(TN_DMTND_Man,          0x1F,     "Man")},
    { _TOKEN(TN_DMTND_MgmtTree,     0x20,     "MgmtTree")},
    { _TOKEN(TN_DMTND_MIME,         0x21,     "MIME")},
    { _TOKEN(TN_DMTND_Mod,          0x22,     "Mod")},
    { _TOKEN(TN_DMTND_Name,         0x23,     "Name")},
    { _TOKEN(TN_DMTND_Node,         0x24,     "Node")},
    { _TOKEN(TN_DMTND_node,         0x25,     "node")},
    { _TOKEN(TN_DMTND_NodeName,     0x26,     "NodeName")},
    { _TOKEN(TN_DMTND_null,         0x27,     "null")},
    { _TOKEN(TN_DMTND_Occurrence,   0x28,     "Occurrence")},
    { _TOKEN(TN_DMTND_One,          0x29,     "One")},
    { _TOKEN(TN_DMTND_OneOrMore,    0x2A,     "OneOrMore")},
    { _TOKEN(TN_DMTND_OneOrN,       0x2B,     "OneOrN")},
    { _TOKEN(TN_DMTND_Path,         0x2C,     "Path")},
    { _TOKEN(TN_DMTND_Permanent,    0x2D,     "Permanent")},
    { _TOKEN(TN_DMTND_Replace,      0x2E,     "Replace")},
    { _TOKEN(TN_DMTND_RTProperties, 0x2F,     "RTProperties")},
    { _TOKEN(TN_DMTND_Scope,        0x30,     "Scope")},
    { _TOKEN(TN_DMTND_Size,         0x31,     "Size")},
    { _TOKEN(TN_DMTND_time,         0x32,     "time")},
    { _TOKEN(TN_DMTND_Title,        0x33,     "Title")},
    { _TOKEN(TN_DMTND_TStamp,       0x34,     "TStamp")},
    { _TOKEN(TN_DMTND_Type,         0x35,     "Type")},
    { _TOKEN(TN_DMTND_Value,        0x36,     "Value")},
    { _TOKEN(TN_DMTND_VerDTD,       0x37,     "VerDTD")},
    { _TOKEN(TN_DMTND_VerNo,        0x38,     "VerNo")},
    { _TOKEN(TN_DMTND_xml,          0x39,     "xml")},
    { _TOKEN(TN_DMTND_ZeroOrMore,   0x3A,     "ZeroOrMore")},
    { _TOKEN(TN_DMTND_ZeroOrN,      0x3B,     "ZeroOrN")},
    { _TOKEN(TN_DMTND_ZeroOrOne,    0x3C,     "ZeroOrOne") }
  };
  #endif

  #ifndef NOWSM
  _tmpTagPtr = NULL; 
  pGA = mgrGetSyncMLAnchor();
  if (pGA == NULL) return NULL;
  #endif

  /* get the correct codepage */
  if (ext == SML_EXT_UNDEFINED) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->SyncML;
    if (_tmpTagPtr == NULL) {
		  mySize = sizeof(syncml);
		  pGA->tokTbl->SyncML = (TagPtr_t)smlLibMalloc(mySize);
		  if (pGA->tokTbl->SyncML == NULL) return NULL;
		  smlLibMemcpy(pGA->tokTbl->SyncML, &syncml, mySize);
      _tmpTagPtr = pGA->tokTbl->SyncML;
    }
    #else
    _tmpTagPtr=(TagPtr_t)syncml;
    #endif
  }

  #ifdef __USE_METINF__
	else if (ext == SML_EXT_METINF) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->MetInf;
    if (_tmpTagPtr == NULL) {
		  mySize = sizeof(metinf);
		  pGA->tokTbl->MetInf = (TagPtr_t)smlLibMalloc(mySize);
		  if (pGA->tokTbl->MetInf == NULL) return NULL;
		  smlLibMemcpy(pGA->tokTbl->MetInf, &metinf, mySize);
      _tmpTagPtr = pGA->tokTbl->MetInf;
    }
    #else
    _tmpTagPtr=(TagPtr_t)metinf;
    #endif
  }
  #endif
  
  #ifdef __USE_DEVINF__
	else if (ext == SML_EXT_DEVINF) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->DevInf;
    if (_tmpTagPtr == NULL) {
  		mySize = sizeof(devinf);
  		pGA->tokTbl->DevInf = (TagPtr_t)smlLibMalloc(mySize);
  		if (pGA->tokTbl->DevInf == NULL) return NULL;
  		smlLibMemcpy(pGA->tokTbl->DevInf, &devinf, mySize);
      _tmpTagPtr = pGA->tokTbl->DevInf;
    }
    #else
    _tmpTagPtr=(TagPtr_t)devinf;
    #endif
  }
  #endif

  #ifdef __USE_DMTND__
  else if (ext == SML_EXT_DMTND) {
    #ifndef NOWSM
    _tmpTagPtr = pGA->tokTbl->DmTnd;
    if (_tmpTagPtr == NULL) {
  		mySize = sizeof(dmtnd);
  		pGA->tokTbl->DmTnd = (TagPtr_t)smlLibMalloc(mySize);
  		if (pGA->tokTbl->DmTnd == NULL) return NULL;
  		smlLibMemcpy(pGA->tokTbl->DmTnd, &dmtnd, mySize);
      _tmpTagPtr = pGA->tokTbl->DmTnd;
    }
    #else
    _tmpTagPtr=(TagPtr_t)dmtnd;
    #endif
  }
  #endif

  return _tmpTagPtr;  
}