code: def axisfn(reverse=False, principal_node_type=xml.dom.Node.ELEMENT_NODE):
      
      def decorate(f):
          f.__name__ = f.__name__.replace('_', '-')
          f.reverse = reverse
          f.principal_node_type = principal_node_type
          return f
      return decorate
docs: Axis function decorator.
  
      An axis function will take a node as an argument and return a sequence
      over the nodes along an XPath axis.  Axis functions have two extra
      attributes indicating the axis direction and principal node type.