110 if not rtype in getrschema: |
110 if not rtype in getrschema: |
111 self.error('unexisting relation %r', relstr) |
111 self.error('unexisting relation %r', relstr) |
112 continue |
112 continue |
113 self.w(u' <%s role="%s">\n' % (rtype, role)) |
113 self.w(u' <%s role="%s">\n' % (rtype, role)) |
114 for related in entity.related(rtype, role, entities=True): |
114 for related in entity.related(rtype, role, entities=True): |
|
115 # XXX put unique attributes as xml attribute, they are much |
|
116 # probably used to search existing entities in client data feed, |
|
117 # and putting it here may avoid an extra request to get those |
|
118 # attributes values |
115 self.w(u' <%s eid="%s" cwuri="%s"/>\n' |
119 self.w(u' <%s eid="%s" cwuri="%s"/>\n' |
116 % (related.e_schema, related.eid, |
120 % (related.e_schema, related.eid, |
117 xml_escape(related.cwuri))) |
121 xml_escape(related.cwuri))) |
118 self.w(u' </%s>\n' % rtype) |
122 self.w(u' </%s>\n' % rtype) |
119 self.w(u'</%s>\n' % (entity.e_schema)) |
123 self.w(u'</%s>\n' % (entity.e_schema)) |
269 |
273 |
270 def render_entity_creator(self, entity): |
274 def render_entity_creator(self, entity): |
271 if entity.creator: |
275 if entity.creator: |
272 self._marker('dc:creator', entity.dc_creator()) |
276 self._marker('dc:creator', entity.dc_creator()) |
273 |
277 |
274 |
|
275 def _marker(self, marker, value): |
278 def _marker(self, marker, value): |
276 if value: |
279 if value: |
277 self.w(u' <%s>%s</%s>\n' % (marker, xml_escape(value), marker)) |
280 self.w(u' <%s>%s</%s>\n' % (marker, xml_escape(value), marker)) |