def write_element_node(node, visible)
savedPrevVisibleNamespacesStart = @prevVisibleNamespacesStart
savedPrevVisibleNamespacesEnd = @prevVisibleNamespacesEnd
savedVisibleNamespacesSize = @visibleNamespaces.size()
state = @state
state = INSIDE_DOC_ELEMENT if (visible && state == BEFORE_DOC_ELEMENT)
@res = @res + "<" + node.expanded_name() if (visible)
write_namespace_axis(node, visible)
write_attribute_axis(node)
@res = @res + ">" if (visible)
node.each_child{|child|
write_node(child)
}
@res = @res + "</" +node.expanded_name() + ">" if (visible)
@state = AFTER_DOC_ELEMENT if (visible && state == BEFORE_DOC_ELEMENT)
@prevVisibleNamespacesStart = savedPrevVisibleNamespacesStart
@prevVisibleNamespacesEnd = savedPrevVisibleNamespacesEnd
@visibleNamespaces.slice!(savedVisibleNamespacesSize, @visibleNamespaces.size() - savedVisibleNamespacesSize) if (@visibleNamespaces.size() > savedVisibleNamespacesSize)
end