Because this tool requires a good deal of querying the DTD, we decided to write it in ACL. The interface requirements included making it impossible for a user to create invalid XML. For example, the tool needed to remove #FIXED attributes from the attribute list, and, if the user wanted to delete attribute values, the tool needed to remove #REQUIRED attributes from the list. While the Arbortext Object Model (AOM) exposes only a namelist of required attrs, these attribute types are exposed by the tag_attr_required() and tag_attr_fixed() ACL functions. Dozens of such calls that query the DTD or a given Object ID (oid) are easily accessible in ACL.
Because this tool requires a complex dialog box with 24 dialog controls, and because we wanted to give the users a beautiful dialog box, we needed a way to create the dialog that would allow us to drag and drop dialog elements, resizing and changing appearance in real time. We used ACL Designer, a powerful but unsupported interface design tool that, with a conversion program that ships with Arbortext Editor, can be used to create XUI dialog boxes with a wide variety of controls. The ACL dlgitem functions allow granular management of dialog item controls.
As Spider-Man knows, "With great power comes great responsibility." The Global Attribute Find-Replace tool can save a huge amount of time, but it can also destroy a lot of content very quickly. The danger of using the tool incorrectly is mitigated by two layers between the core find-replace function and the user: a business-logic layer, which allows granular control over what the user can and can't do; and a dialog layer, which allows XML-aware control over user input. Because of this tiered approach, it was easy to develop another tool on top of the core function.
This presentation will show you:
- an end-to-end example of Requirements Gathering, Technical Design, and Application Development for a complex XML tool
powerful XML and dialog functions in ACL
- a "tiered" approach to application development
- tips on controlling dialog behavior
- XUI tips
- ideas for interface design and implementation
This project involved a great deal of requirements gathering, meetings, testing, signoffs, and ongoing user input, to come to fruition. The process worked, and we now have a valuable addition to Editor functionality that saves a great deal of time and error.
About the Speaker