- relation.members = Array.new
-
- pt.find('member').each do |member|
- #member_type =
- logger.debug "each member"
- raise OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member['type']
- logger.debug "after raise"
- #member_ref = member['ref']
- #member_role
- member['role'] ||= "" # Allow the upload to not include this, in which case we default to an empty string.
- logger.debug member['role']
- relation.add_member(member['type'].classify, member['ref'], member['role'])
- end
- raise OSM::APIBadUserInput.new("Some bad xml in relation") if relation.nil?
-
- return relation
- end
-
- def to_xml
- doc = OSM::API.new.get_xml_doc
- doc.root << to_xml_node()
- return doc
- end
-
- def to_xml_node(visible_members = nil, changeset_cache = {}, user_display_name_cache = {})
- el1 = XML::Node.new 'relation'
- el1['id'] = self.id.to_s
- el1['visible'] = self.visible.to_s
- el1['timestamp'] = self.timestamp.xmlschema
- el1['version'] = self.version.to_s
- el1['changeset'] = self.changeset_id.to_s
-
- if changeset_cache.key?(self.changeset_id)
- # use the cache if available
- else
- changeset_cache[self.changeset_id] = self.changeset.user_id
- end
-
- user_id = changeset_cache[self.changeset_id]