Index: fedd/federation/topdl.py
===================================================================
--- fedd/federation/topdl.py	(revision df3179c7ab4667cd208bc5d52a5d4e5f1c5aef02)
+++ fedd/federation/topdl.py	(revision da2208aafe4314bd80bf00197865c62e9833aff6)
@@ -3,4 +3,6 @@
 import re
 import xml.parsers.expat
+
+from fedid import fedid as fedid_class
 
 class base:
@@ -60,6 +62,6 @@
 class Attribute(base):
     def __init__(self, attribute, value):
-	self.attribute = attribute
-	self.value = value
+	self.attribute = "%s" % attribute
+	self.value = "%s" % value
 
     def clone(self):
@@ -72,5 +74,5 @@
     def __init__(self, rate, kind):
 	self.rate = float(rate)
-	self.kind = kind
+	self.kind = "%s" % kind
 
     def clone(self):
@@ -83,5 +85,5 @@
     def __init__(self, time, kind):
 	self.time = float(time)
-	self.kind = kind
+	self.kind = "%s" % kind
 
     def clone(self):
@@ -93,5 +95,5 @@
 class Substrate(base):
     def __init__(self, name, capacity=None, latency=None, attribute=[]):
-	self.name = name
+	self.name = "%s" % name
 	self.capacity = self.init_class(Capacity, capacity)
 	self.latency = self.init_class(Latency, latency)
@@ -124,5 +126,5 @@
 class CPU(base):
     def __init__(self, type, attribute=[]):
-	self.type = type
+	self.type = "%s" % type
 	self.attribute = [ self.init_class(Attribute, a) for a in \
 		self.make_list(attribute) ]
@@ -141,5 +143,5 @@
     def __init__(self, amount, persistence, attribute=[]):
 	self.amount = float(amount)
-	self.presistence = persistence
+	self.presistence = "%s" % persistence
 	self.attribute = [ self.init_class(Attribute, a) \
 		for a in self.make_list(attribute) ]
@@ -158,8 +160,8 @@
     def __init__(self, name=None, version=None, distribution=None,
 	    distributionversion=None, attribute=[]):
-	self.name = name
-	self.version = version
-	self.distribution = distribution
-	self.distributionversion = distributionversion
+	self.name = "%s" % name
+	self.version = "%s" % version
+	self.distribution = "%s" % distribution
+	self.distributionversion = "%s" % distributionversion
 	self.attribute = [ self.init_class(Attribute, a) \
 		for a in self.make_list(attribute) ]
@@ -184,6 +186,6 @@
 class Software(base):
     def __init__(self, location, install=None, attribute=[]):
-	self.location = location
-	self.install = install
+	self.location = "%s" % location
+	self.install = "%s" % install
 	self.attribute = [ self.init_class(Attribute, a)\
 		for a in self.make_list(attribute) ]
@@ -203,5 +205,5 @@
     def __init__(self, substrate, name=None, capacity=None, latency=None,
 	    attribute=[], element=None):
-	self.name = name
+	self.name = "%s" % name
 	self.substrate = self.make_list(substrate)
 	self.capacity = self.init_class(Capacity, capacity)
@@ -236,9 +238,9 @@
     def __init__(self, fedid=None, uuid=None, uri=None, localname=None,
 	    kerberosUsername=None):
-	self.fedid=fedid
-	self.uuid = uuid
-	self.uri = uri
-	self.localname = localname
-	self.kerberosUsername = kerberosUsername
+	self.fedid=fedid_class(hexstr="%s" % fedid)
+	self.uuid = "%s" % uuid
+	self.uri = "%s" % uri
+	self.localname ="%s" %  localname
+	self.kerberosUsername = "%s" % kerberosUsername
 
     def clone(self):
@@ -261,5 +263,5 @@
 	    i.element = self
 
-	self.name = name
+	self.name = "%s" % name
 	self.cpu = [ self.init_class(CPU, c)  for c in self.make_list(cpu) ]
 	self.os = [ self.init_class(OperatingSystem, c) \
@@ -306,6 +308,6 @@
 class Testbed(base):
     def __init__(self, uri, type, interface=[], attribute=[]):
-	self.uri = uri
-	self.type = type
+	self.uri = "%s" % uri
+	self.type = "%s" % type
 	self.interface = [ self.init_class(Interface, c) \
 		for c in self.make_list(interface) ]
@@ -331,6 +333,6 @@
     def __init__(self, id, type, uri, interface=[], attribute=[]):
 	self.id = self.init_class(ID, id)
-	self.type = type
-	self.uri = uri
+	self.type = "%s" % type
+	self.uri = "%s" % uri
 	self.interface = [ self.init_class(Interface, c) \
 		for c in self.make_list(interface) ]
