def isTopNode(elem) : return definesNode(elem) and not lib.hasAncestorElement(elem.parentNode, definesNode)
def isNonExec(elem) : return lib.hasAncestorElement( elem, lambda x: x.getAttribute("xml:id") == "non-executable" )
def isNestedNode(elem) : return lib.hasAncestorElement( elem, lambda x: x.getAttribute("xml:id").find("node.") == 0 )
def isFamily(node) : return lib.hasAncestorElement( node, lambda x: x.getAttribute("xml:id") == "family-node-types" )