In developing the prompt framework for a multi-lingual application, I gained some useful insight into the use of XML in the design and implementation of flexible and extensible data/information structures.
Given the number of ways that prompts can be configured and used (initial, help, no speech timeout; single, concatenated, or escalating; time, day, month and/or year; recorded or TTS, etc, etc) it would be difficult to specify a relational database model (schema) that full represent the configuration parameters and variations of the all of the voice application prompts. Also, it can take a significant amount of effort (time/resources) to modify database tables (schemas) when the prompt structures change, or when there is a need for new features and functionality.
We try to get a full set of requirements for a new products/services before we begin development. However, the more we get into the project, and the more that we work with the users/clients/customers, the more that learn (discover) what the service ‘really needs to do’ and how best to develop those capabilities. As that is ‘the world in which we live/work/develop’ then it is essential, where possible/feasible, that we insure that the underlying data structures that hold configuration information (i.e. protocols, profiles, etc) be designed and developed with a flexible and extensible data structure/representation – if we do that, then XML can be a good tool for the job.
XML has many features that can be of significant value in supporting rapid design and implementation of flexible and extensible information/data structures:
– Extensibility – Data tags and hierarchy are designed to match the structure of the data. We are not locked to rigid DB structure when the requirements for the data change or when new features and functionality is added. New data tags/structures can be specified/designed and then rapidly integrated, tested and implemented.
– Ease of creation – Simple XML documents can be easily created by hand. For more complex structures, there is a wide range of tools to rapidly author (create/edit) XML documents – we do not need to build tools to do these tasks. The data structures that we create are not limited/constrained by the tools that we build to author them.
– Flexibility – Data/information structure can be easily developed and tested. These structures can be easily modified/extended as needed. When requirement change or additional features and functionality are added, the XML structure can be extended or modified as necessary.
– Simplicity – Information coded in XML is easy to read and understand. You don’t need to be a programmer to make good use of XML
– Openness – XML is a W3C standard, endorsed by software industry market leaders. There are XML parsers for every programming language. There is full support for XML in PL/SQL, therefore XML could be easily integrated into our middleware
– Validation – XML provides processes for validating the structure of the documents (elements, attributes, hierarchy, order, etc). The schemas can also validate the data/information contained in the tags using – data can be validated by type, range and value(s)
– Self-description – XML documents can be stored without such definitions, because they contain meta data in the form of tags and attributes. XML Provides a basis for author identification and versioning at the element level. Any XML tag can possess an unlimited number of attributes such as author or version.
– Contains machine-readable context information – Tags, attributes and element structure provide context information that can be used to interpret the meaning of content, opening up new possibilities for highly efficient search engines, intelligent data mining, agents, etc.
– Separates content from presentation – The look and feel of an XML document can be controlled by XSL style sheets, allowing the look of a document (or of a complete Web site) to be changed without touching the content of the document. Multiple views or presentations of the same content are easily rendered.
– Facilitates the comparison and aggregation of data – The tree structure of XML documents allows documents to be compared and aggregated efficiently element by element.
– Can embed multiple data types – XML documents can contain any possible data type – from multimedia data (image, sound, video) to active components (Java applets, ActiveX).
– Can embed existing data – Mapping existing data structures like file systems or relational databases to XML is simple. XML supports multiple data formats and can cover all existing data structures and.