Index: trunk/i386/libsaio/xml.c =================================================================== --- trunk/i386/libsaio/xml.c (revision 1111) +++ trunk/i386/libsaio/xml.c (revision 1112) @@ -1097,6 +1097,11 @@ } /*** Cast functions ***/ +bool XMLIsArray(TagPtr entry) +{ + return entry && (entry->type == kTagTypeArray); +} + TagPtr XMLCastArray(TagPtr dict) { if(!dict) return NULL; @@ -1104,6 +1109,12 @@ else return NULL; } +bool XMLIsDict(TagPtr entry) +{ + return entry && (entry->type == kTagTypeDict); +} + + TagPtr XMLCastDict(TagPtr dict) { if(!dict) return NULL; @@ -1111,6 +1122,13 @@ else return NULL; } +bool XMLIsString(TagPtr entry) +{ + return entry && + ((dict->type == kTagTypeString) || + (dict->type == kTagTypeKey)); +} + char* XMLCastString(TagPtr dict) { if(!dict) return NULL; @@ -1135,6 +1153,13 @@ } } +bool XMLIsBoolean(TagPtr entry) +{ + return entry && + ((entry->type == kTagTypeTrue) || + (entry->type == kTagTypeFalse)); +} + bool XMLCastBoolean(TagPtr dict) { if(!dict) return false; @@ -1142,6 +1167,11 @@ return false; } +bool XMLIsInteger(TagPtr entry) +{ + return entry && (entry->type == kTagTypeInteger); +} + int XMLCastInteger(TagPtr dict) { if(!dict) Index: trunk/i386/libsaio/xml.h =================================================================== --- trunk/i386/libsaio/xml.h (revision 1111) +++ trunk/i386/libsaio/xml.h (revision 1112) @@ -98,6 +98,13 @@ TagPtr XMLCastDict ( TagPtr dict ); TagPtr XMLCastArray( TagPtr dict ); +bool XMLIsBoolean(TagPtr entry); +bool XMLIsString (TagPtr entry); +bool XMLIsInteger(TagPtr entry); +bool XMLIsDict (TagPtr entry); +bool XMLIsArray (TagPtr entry); + + bool XMLAddTagToDictionary(TagPtr dict, char* key, TagPtr value); long XMLParseNextTag(char *buffer, TagPtr *tag);