I'm dealing with a legacy webapp that CRUDs various datatypes by marshalling/unmarshalling xml files using castor every time there's a change in the UI. The datatypes are configurable so by modifying an xml configuration file you can add new custom datatypes with custom properties. Each new custom datatype added will result in an additional xml file. e.g. config file snippet
Code:
 `

<group name="x">
    <my_attribute name="a1">
        <field name="id">
            <display_name>ID</display_name>
            <type>String</type>
            <nullable>false</nullable>
            <default_value/>
            <minimum_boundary/>
            <maximum_boundary/>
            <editable>false</editable>
        </field>
        <field name="name">
            <display_name>Name</display_name>
            <type>String</type>
            <nullable>false</nullable>
        </field>
...etc.
e.g. data file snippet
Code:
`

<display-name>a1</display-name>
<values xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" timestamp="1357573081953" xsi:type="java:com.xxx">
    <id>blab1</id>
    <name>blab1name</name>
</values>
`
Some of this data needs to be read by a second application so a subset of the xml files are put in a zip file and stored in a blob in an oracle db. They are subsequently unzipped to file by the second application and read. Now the application has evolved to become more complex there are concerns about concurrent modification of data in the first application and the client would like to only manage this data (with the customisable types) in an oracle db without using the filesystem. What is the best way to do this? Which technologies are good candidates? Any help is much appreciated.