The answer you seek is available in the following location:
libxml2-2.9.0::debugXML.c:1652: xmlLsOneNode(FILE *output, xmlNodePtr node)
I've broken the output down by node type, please note that the second two characters below are shown as "--" for convenience. In actuality, for all node types other than XML_NAMESPACE_DECL, the second character is "a" if node->properties is not NULL and the third character is "n" if node->nsDef is not NULL. Finally, #NC# suggests a digit value for the number of children that node has while #CL# is a digit value for the length of the content of the node.
XML_ELEMENT_NODE:
--- #NC# [[(node->ns->prefix):](node->name)]
XML_ATTRIBUTE_NODE:
a-- #NC# [(node->name)]
XML_TEXT_NODE:
t-- #CL# [xmlDebugDumpString(node->content)...|"(NULL)"]
* The string value of content up to at most 40 characters with some
* substitutions. A space (' ') replaces the whitespace characters
* allowed by the XML RFC: (0x20, 0x9, 0xA, 0xD). Any character whose
* HEX value is 0x80 or greater is printed as a string: "#XXXX"
XML_CDATA_SECTION_NODE:
C-- #CL#
XML_ENTITY_REF_NODE:
e-- 1 [(node->name)]
XML_ENTITY_NODE:
E-- 1 [(node->name)]
XML_PI_NODE:
p-- #CL#
XML_COMMENT_NODE:
c-- #CL#
XML_DOCUMENT_NODE:
d-- #NC#
XML_HTML_DOCUMENT_NODE:
h-- #NC#
XML_DOCUMENT_TYPE_NODE:
T-- 1
XML_DOCUMENT_FRAG_NODE:
F-- 1
XML_NOTATION_NODE:
N-- 1
XML_NAMESPACE_DECL:
n 1 [(node->prefix)|"default"] -> (node->href)
default:
?-- 1