XML/DTD
The Extensible Markup Language (XML) is a general-purpose human-readable markup language used for sharing data across applications and the Internet. Templates defining which tags may be used in an XML document are called schemas. DTD (Document Type Definition) is the oldest schema format, and DTDs let users say which tags are allowed in a document and where, making it possible to verify the validity of the data’s structure.
XML/DTD and INDI
INDI is uses various XML DTD templates to provide system flexibility, configurability, and a declarative architectural approach. The primary DTD templates used in INDI include:
app-config DTD: defines system related configurations including authentication (LDAP for the BYU implementation), database connectivity, job scheduling, and tool configurations (My Contacts and My Projects)entity-model DTD: defines the INDI object model including the fields associated with a collection/accession, validation constraints, and views (views include the forms used to populate data as well as the output including XSL-FO based PDF templates)workflow DTD: defines the workflow associated with the different INDI modules. Each module such as Accessioning and Arranangement & Description, utilizes one or more workflow definition. This definition describes how the system should implement that corresponding module including tasks to create (and forms to display for data entry associated with those tasks), validation constraints to be used against those forms, conditional branching, role based task permissions and automated task assignmentmy-project DTD: defines the INDI project templates. Each module such as Accessioning and Arrangement & Description utilizes one or more project template. This template defines permissions, project setup requirements, scheduling and timelines, and association between the project to a workflow defined using theworkflow DTDplugin DTD: each tool in INDI is implemented utilizing a plugin description. These tools include INDI Desktop, My Contacts and My Projects as well as other supporting tools such as the help system and federated search. The plugin description is used to define the associated tool UI,entity-model, and server/client-side business logic
