Scheherazade Helper
by Marshall Fox

This program imports a local XML document and parses its information to provide help information for the Scheherazade software package.  The code is well commented, so please check in the code base first. There are also some paths that need to be changed and the version issue needs to be integrated.

help_driver.java is a short model on how to use the classes. Retrieval methods are your friends! Get the structures by creates a "Scheherazade_Help" data structure and querying for either a HelpTopic, FAQ, or Icon. Once you have one of these structures, you can query it for information as well.

A summary of the classes:
help_driver.java
 * Help-Content Driver file- Contains the main method and some sample code

Scheherazade_Help.java
 * This class is responsible for holding the different Scheherazade help data structures
 * The three data structures are:
 * 	-HelpTopic -> Involves a header and information about that header and possibly additional children topics
 * 	-FAQ -> Involves a question and an answer in the form of strings
 * 	-Icon -> Involves an icon name and a brief description of that icon
 * All data structures carry special unique name identifiers (i.e. t_ID for "topic ID")
 * 
 * HelpTopics are stored in Scheherazade_Help as a vector of top level HelpTopics
 * FAQs are stored in Scheherazade_Help as a hash table with the key being the question ID and the value being the FAQ object
 * Icons are stored in Scheherazade_Help as a hash table with the key being the icon ID and the value being the Icon object

HelpErrorHandler
* This is an implementation of an ErrorHandler class for the Simple API for XML (SAX)
 * It is intended to notify the user when one of three types of problems occur:
 * Warnings
 * Errors
 * Fatal Errors
 * @author Marshall Fox
 * Note: This code was modeled off of samples found online via the resource:
 * http://www.ibm.com/developerworks/library/x-tipeh.html

HelpTopic.java
 * This class represents a Scheherazade HelpTopic.  Every HelpTopic contains
 * an ID (a name), a header (indicating the category or enclosed content), and the
 * content itself.  This class also includes information about the HelpTopic's parent
 * and a vector of HelpTopics that represent its children

FAQ.java
 * The purpose of this class is to represent the Scheherazade FAQ data structure.
 * This structure consists of an ID (name), a question, and an answer.

Icon.java
 * The purpose of this class is to represent the Scheherazade Icon data structure.
 * The structure consists of an ID (name), a keyword, and a statement about this keyword

SCHConstants.java
 * Miscellaneous string constants, especially for the Virgil UI.
 * THERE ARE SOME ADDITONS HERE - BE SURE TO SYNCHRONIZE

SCHStaticModification.java
 * Contains the constants necessary to replace special words coming in from the
 * XML parsing. These are in case renaming occurs for a particular object that
 * is likely to change allowing the whole system to update all instances automatically.
 * 
 * This class contains the methods necessary for making substitutions in the incoming
 * XML information

HelpDisplay.java
 * A class dedicated to making a JTree inside a JPanel and returning a JPanel
 * for outputting the HelpTopic information in a convenient Swing layout

Help_HTML.java
 * Contains many important HTML tags so that the system can output in HTML.
 * Methods exist both for returning HelpTopics in HTML and FAQs in HTML
