I am designing a web based application whose database is an XML file(s).
Depending on the user's login and request parameters, one or more stylesheets
(XSLT) are applied on the XML file to filter (transform to another XML vocabulary),
process and then present (convert to HTML) the user with appropriate views
of the data. The user may also edit the presented content which means that
the XML file on the server needs to be updated so that the change is reflected
in all subsequent requests. Also, one or more users may attempt to edit the
content at the same time.

I am using Java, JDOM and Xalan to handle XML parsing and transformations.
The XML file (database) can get bulky and upto 1MB. Also, the system must
be able to handle upto 200 concurrent requests.

What are some potential problems I can expect especially due to the size
of the XML file, large number of concurrent users and the number of transformations
before delivering a response (output) to the browser? How do I deal with
many concurrent users accessing/editing the same XML file at the same time.
One thought is to capture an application level "checkout" status. But then,
does the "checkout" apply only when a user attempts to edit or even when
there is a query/view request? Any input in this regard along with possible
solutions are very much appreciated.