1. A method comprising: storing a hierarchical object in computer memory, the hierarchical object having a first plurality of nodes arranged in a hierarchy, the first plurality of nodes having exactly one root node, and wherein every node of the first plurality of nodes other than the root node has exactly one parent node that is one of the first plurality of nodes; storing a corpus of elements in computer memory, wherein each element of the corpus of elements is associated with a set of rules; for each node of at least one node of the first plurality of nodes: (a) determining an element of the corpus of elements that the node is an instance of, (b) based at least on a hierarchical context of the node, whether the node is an open-content node, and the set of rules associated with the element that the node is an instance of, determining one or more rules that apply to the node and adding the one or more rules to a collection of rules for the hierarchical object, (c) performing an evaluation of the node against at least one of the one or more rules that apply to the node, (d) based on results of the evaluation of the node, determining whether the node is valid or invalid, and (e) when the node is invalid, determining if invalidity of the node does not cause at least one ancestor node of the node to also be invalid because the rules added to the collection of rules includes a constraint linking the node to the at least one ancestor node; wherein the method is performed by one or more computing devices.