1. A method comprising: identifying a logical tree contained within a structured document; identifying nodes of the logical tree; mapping the identified nodes into a logical structure, the logical structure populated with data in each of the identified nodes; and generating an observer structure for observing the data, the observer structure comprising a grid of cells that has a one-to-one structural correspondence with the nodes of the logical structure, with data in each of the nodes of the logical structure mapped into corresponding cells in the grid of cells, the grid of cells accommodating a required attribute and an optional attribute of an element contained in the logical tree, the optional attribute indicated by a null value in the grid of cells when the optional attribute is not present, wherein the observer structure comprises a table, and mapping the data in each of the nodes of the logical structure into corresponding cells in the grid of cells comprises a building of: a data-bound list binding to a first control, the data-bound list comprising a collection of nodes and corresponding to the table of the observer structure, the table having a plurality of rows and a plurality of columns, each row and column intersecting at a cell; a data-bound node binding to a second control, the data-bound node corresponding to a row in the observer structure; and a data-bound node property binding to a third control, the data-bound node property corresponding to a column value in the row of the observer structure.