xAce data is stored in a single self referring table. For every page request x-Ace returns an XML tree. This tree consists of a full hierarchical layout of item-records in the database, containing item metadata. The site's entire structure can be parsed by XSLT to build up (HTML) menu's or show cross sections of item metadata (caption's, summaries and hyperlinks).
Along with item metadata, item contents are included in the tree for the actually requested item and its direct descendants. This ensures not too much data is gathered per request, so to keep performance high. It is still possible to show not only the requested item's full contents, but also its children as either inline links, links with summary or fully expanded items.
What your site looks like in terms of HTML is entirely constituted in the XSLT file(s). Knowledge of the XML tree structure is essential for writing these XSLT files. Luckily, the XML tree structure is very simple. It consists of a root node containing a nested tree of item nodes, each containing summary and contents nodes, the latter depending on the page request. These four types of nodes together with their attributes contain all that's needed to transform the tree to a decent looking website using XSLT.
<root> <item id="1"> <summary>[CDATA]</summary> <item id="2"> <summary>[CDATA]</summary> <contents>[CDATA]</contents> <item id="3"> <summary>[CDATA]</summary> <contents>[CDATA]</contents> </item> </item> <item id="4"> ... </item> </item> </root>
The above (simplified - most attributes left out) example shows the resulting tree for a request on item id="2". summary nodes are available for all item nodes. Contents nodes are only populated with data for the requested item and its direct descendants.