XRX/Code Table Management

Motivation
You want to be able to manage all code-tables and selection lists in a consistent way across multiple applications.

Specifically:
 * XML files that are exported to external sources should not use numeric codes that are not descriptive of the semantics of a category.
 * Any codes that are passed as RESTful parameters should use URL-friendly codes (lowercase and dashes)
 * All user views of codes should use "labels" that may be contextual to a specific language
 * Role-based access should allow separate forms that only code-table administrators should have rights to modify

Method
One of the most tedious and time consuming parts of developing many XRX applications is effective management of all of the code-tables within an XML applications. Without a strategic framework to manage codes many projects bet bogged down with the details of inconsistent code-table management.

In general our approach is to treat code-tables and their own data sets. A separate collection which is a child of the main application collection called "code-tables" is used to manage code tables for that application.

Small code-tables are usually stored in XML files with one file per entity. These code table files store a list of all items for that code table including the labels, the value and the definition of that value. According to ISO/IEC 11179 guidelines all code values, like data elements, should have definitions that are approved by a data governance process.