Technical Description of the Navigation System
Navigation is accomplished by client-side DHTML behaviors implemented by JavaScript in an HTML component (.htc) file. Each active row of a table has a unique ID attribute value to identify the element. (Active rows are contained within a <tbody style='behavior:url(CFRToc.htc)...>...</tbody>
tag pair that points to the .htc file.) The format of the ID attribute is ti#st#ch#sc#pn#sn#
for title, subtitle, chapter, subchapter, part and section number. An underscore (_
) substitutes for elements not present, such as a title (id='ti21st_'
). An exception is parts of subtitles (no chapter), which substitute ch0
. Here's the row tag that retrieves the text of citation 7CFR1.2: <tr id='ti7stAch0sc_pn1' valign='top'>
. The row tag to display the TOC for title 7, subtitle A is: <tr id='ti7stA' valign='top'>
.
Note: A CFR citation is in ti#CFRpn#.sn# format
; a typical citation is 7CFR15.5 or 7 CFR 15.5. For appendices to parts, the CFR database uses App
followed by the subpart letter, if present, and the appendix letter or number as the .sn#
value, as in 12CFR3.AppA, appendix A to part 3 of title 12. 5CFR532.AppBA is Appendix A to Subpart B of part 532 of title 5. The database doesn't have TOCs for subparts.
If the sn#
tag element is present, server-side VBScript code in the .asp page or Visual Basic.NET code behind the .aspx page calls the component that processes section text as XHTML. Otherwise the TOC component delivers the appropriate TOC to the client as XHTML. In either case, the component translates the tag values to an SQL query, which returns the stored XML document. The XML-to-XHTML transformation code constructs the tag, so navigation methods can be modified to suit the display device. Content and presentation are totally independent.