}
+ // Process the data from DESCRIPTION.
+
+ DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "DESCRIPTION");
+
+ if (DataReceived.begin() != DataReceived.end()){
+
+ bool TokenData = false;
+ string PropertyTokens;
+
+ PropertyNameData = (string*)&DataReceived.begin()->first;
+
+ PropertyData = SplitValues(*PropertyNameData);
+
+ for(map<string,string>::iterator iter = PropertyData.begin();
+ iter != PropertyData.end(); iter++){
+
+ if (iter->first == "ALTREP"){
+
+ DescriptionListAltRep.clear();
+ DescriptionListAltRep.push_back(iter->second);
+
+ } else if (iter->first == "LANGUAGE"){
+
+ DescriptionListLanguage.clear();
+ DescriptionListLanguage.push_back(iter->second);
+
+ } else {
+
+ if (TokenData == false){
+ TokenData = true;
+ } else {
+ PropertyTokens += ";";
+ }
+
+ PropertyTokens += iter->first;
+ PropertyTokens += "=";
+ PropertyTokens += iter->second;
+
+ }
+
+ }
+
+ if (PropertyTokens.size() > 0){
+ DescriptionListTokens.clear();
+ DescriptionListTokens.push_back(PropertyTokens);
+ }
+
+ DescriptionList.clear();
+ DescriptionList.push_back(DataReceived.begin()->second);
+
+ }
+
+ // Process the data from GEO.
+
+ DataReceived = ProcessTextVectors(&ObjectName, &ObjectData, false, "GEO");
+
+ if (DataReceived.begin() != DataReceived.end()){
+
+ try {
+ GeographicTokens = DataReceived.begin()->first.substr(4);
+ }
+
+ catch(const out_of_range &oor){
+ // Do nothing as there is no data.
+ }
+
+ GeographicData = DataReceived.begin()->second;
+
+ }
+
}