def _make_start_format(tag_uri, tag_name, attributes, encoding): # We must search for translatable attributes result = [(u'<%s' % get_qname(tag_uri, tag_name), False, None)] for attr_uri, attr_name in attributes: qname = get_attribute_qname(attr_uri, attr_name) qname = Unicode.decode(qname, encoding=encoding) value = attributes[(attr_uri, attr_name)] value = Unicode.decode(value, encoding=encoding) value = XMLAttribute.encode(value) datatype = get_attr_datatype(tag_uri, tag_name, attr_uri, attr_name, attributes) if issubclass(datatype, Unicode): result[-1] = (result[-1][0] + u' %s="' % qname, False, None) context = _get_attr_context(datatype, tag_name, attr_name) result.append((value, True, context)) result.append((u'"', False, None)) else: result[-1] = (result[-1][0] + u' %s="%s"' % (qname, value), False, None) # Close the start tag if is_empty(tag_uri, tag_name): result[-1] = (result[-1][0] + u'/>', False, None) else: result[-1] = (result[-1][0] + u'>', False, None) return result
def get_start_tag(value): tag_uri, tag_name, attributes = value s = '<%s' % get_qname(tag_uri, tag_name) # Output the attributes for attr_uri, attr_name in attributes: value = attributes[(attr_uri, attr_name)] qname = get_attribute_qname(attr_uri, attr_name) value = XMLAttribute.encode(value) s += ' %s="%s"' % (qname, value) return s + '>'