<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def serialize_structmap(self, recurse=True, normative=False):
 """Return the div Element for this file, appropriate for use in a structMap. If this FSEntry represents a directory, its children will be recursively appended to itself. If this FSEntry represents a file, it will contain a <fptr> element. :param bool recurse: If true, serialize and apppend all children. Otherwise, only serialize this element but not any children. :param bool normative: If true, we are creating a "Normative Directory Structure" logical structmap, in which case we add div elements for empty directories and do not add fptr elements for files. :return: structMap element for this FSEntry """

        if not self.label:
            return None
        # Empty directories are not included in the physical structmap.
        if self.is_empty_dir and not normative:
            return None
        el = etree.Element(utils.lxmlns("mets") + "div", TYPE=self.mets_div_type)
        el.attrib["LABEL"] = self.label
        if (not normative) and self.file_id():
            etree.SubElement(el, utils.lxmlns("mets") + "fptr", FILEID=self.file_id())
        if self.dmdids:
            if (not normative) or (normative and self.is_empty_dir):
                el.set("DMDID", " ".join(self.dmdids))
        if recurse and self._children:
            for child in self._children:
                child_el = child.serialize_structmap(
                    recurse=recurse, normative=normative
                )
                if child_el is not None:
                    el.append(child_el)
        return el