IK0602 Conference Management System
XML Configuration Tools
We would like to allow the user to customize the system easily through the use of XML. We are currently developing a XML parser and related automation tools that make use of the XML's flexibility to let user make changes to the system easily.
Basic Idea
We allow the user to customize many different aspect of the system (eg. information to be included for each user, paper submission system, reviewer bidding/ paper assignment, paper rating, accounting, etc.). Each of these setting will refer to a particular XML configuration file. During system installation, the user will be asked to upload XML files. The system will then create database table and configuration file on the server. Therefore, the user can modify the system behaviour without changing the code of the system. They can do so by simply use an XML editor, following the XML schema, save it and upload it to the system, the system will then know what to do!
XML Schema
The detailed XML schema of each type of configuration is yet to be finalized. A preliminary version of it for user information is roughly as follows:
User Information
It will consist of 2 XML files, one for defining the user's attributes, one for configurating how these information will be displayed to the end user.
Display information
Style information - It defines the appearence of the text / controls.
- Font
- FontSize
- TextAlignment
- DisplayWidth
- DisplayHeight
- Alignment
- etc.
Structural information - It defines how each attribute is arranged on a page.
- Form (Top level element)
- Grouping (A group of attributes with similar properties)
- Field (The attribute)
An example structure will be as follows:
<Form> <Grouping> <Field>User Attribute 1</Field> <Field>User Attribute 2</Field> <Field>User Attribute 3</Field> <Field>User Attribute 4</Field> <Field>User Attribute 5</Field> </Grouping> <Grouping> <Field>User Attribute 6</Field> <Field>User Attribute 7</Field> <Field>User Attribute 8</Field> </Grouping> <Grouping> <Field>User Attribute 9</Field> <Field>User Attribute 10</Field> <Field>User Attribute 11</Field> <Field>User Attribute 12</Field> </Grouping> </form>
User Attributes
Types of attributes - It defines the type of an attribute.
- String
- Number
- Select
- DropDownMenu
- Email
- Password
- TextBox
- FileUpload
- etc.
Attributes Details - It defines the detail information of an attribute. Data validation will be based on these information.
1. Common Attributes Information: - DB_Name (Compulsory) - DisplayName (Compulsory) - Unique (True/False, Default False) - DefaultValue - Example - Compulsory (True/False, Default False) - ReadOnly (True/False, Default False) - Hidden (True/False, Default False)
2. Type Specific Attributes Information:
1. String - MinLength - MaxLength
2. Number - MinValue - MaxValue
3. Select - MinSelect - MaxSelect - NumOfMemberInARow - MemberList (DisplayName, DB_Name)
4. DropDownMenu - Country (True/False, Default False) - MemberList (DisplayName)
5. Email - N/A
6. Password - MinLength - MaxLength - Confirmation (name of the confirmation field, eg. this field should be the same as the confirm password field)
7. TextBox - MinCharacters - MaxCharacters
8. FileUpload - MaxSize - AcceptedFileExtensionList
Sample XML Configuration File for User Attributes
- eg. Display: userInformationDisplay.xml
<display> <style> <form> <fontsize>20</fontsize> <font>verdana</font> <fontweight>bold</fontweight> <align>center</align> </form> <group> <fontsize>16</fontsize> <font>verdana</font> <fontweight>bold</fontweight> <align>left</align> </group> <field> <fontsize>10</fontsize> <font>verdana</font> <fontweight>normal</fontweight> <align>right</align> </field> </style> <structure> <form> <group name="accountinformation"> <field>reg_email</field> <field>userpwd</field> <field>userpwd_confirm</field> <field>student</field> </group> <group name="personalinformation"> <field>title</field> <field>firstname</field> <field>lastname</field> <field>affilation</field> </group> <group name="techincalinformation"> <field>area_of_interest</field> </group> </form> </structure> </display>
- eg. Attribute: userInformation.xml
<fields> <field type="Email"> <db_name>reg_email</db_name> <displayname>Login Name (Email)</displayname> <example>yourname@validemailserver.com</example> <compulsory>true</compulsory> <unique>true</unique> </field> <field type="Password"> <db_name>userpwd</db_name> <displayname>Password</displayname> <example>8-20 characters</example> <maxlength>20</maxlength> <minlength>8</minlength> <compulsory>true</compulsory> </field> <field type="Password"> <db_name>userpwd_confirm</db_name> <displayname>Confirm Password</displayname> <maxlength>20</maxlength> <minlength>8</minlength> <confirmation>userpwd</confirmation> <compulsory>true</compulsory> <example>Should be the same as Password</example> </field> <field type="Select"> <db_name>student</db_name> <displayname>Student</displayname> <minselect>1</minselect> <maxselect>1</maxselect> <member db_name="y">Yes</member> <member db_name="n">No</member> <defaultvalue>n</defaultvalue> </field> <field type="String"> <db_name>title</db_name> <displayname>Title</displayname> <example>Prof., Dr., Mr., Mrs., Ms., etc.</example> <maxlength>20</maxlength> </field> <field type="String"> <db_name>firstname</db_name> <displayname>First Name</displayname> <example>Chris</example> <maxlength>20</maxlength> <compulsory>true</compulsory> </field> <field type="String"> <db_name>lastname</db_name> <displayname>Last Name</displayname> <example>Wong</example> <maxlength>20</maxlength> <compulsory>true</compulsory> </field> <field type="String"> <db_name>affiliation</db_name> <displayname>Affiliation</displayname> <example>The Chinese University of Hong Kong</example> <maxlength>200</maxlength> <compulsory>true</compulsory> </field> <field type="Select"> <db_name>area_of_interest</db_name> <displayname>Area of Interest</displayname> <numofmemberinarow>1</numofmemberinarow> <minselect>1</minselect> <example>Please select as many as possible. Must select at least one.</example> <member db_name="A">A. Neural Network Theory and Models</member> <member db_name="B">B. Computational Neuroscience and Cognitive Science</member> <member db_name="C">C. Neural Network Application</member> <member db_name="D">D. Hybrid Systems and Hardware</member> </field> </fields>