We have implemented the XmlPageProvider successfully, and pages are generated from XML-files that are created by an external system.
A request from the editors is the possibility to add information to the pages, such as setting categories and perhaps creating child pages. This should be possible doing by just adding the attribute Edit to the declaration, but the problem is that this additional information shouldn't be stored in the XML-files, since the could be overridden by the external system that creates them in the first place.
The information that they want to add is not possible to set in the external system, which is why they need to/have to set it in EPiServer.
Is there any way around this?
If I've understood correctly, your page provider is working from a data file created by your external data source. You want to be able to save changes to the pages that have been created, but you cannot update the external data source.
Are you sure that the page providers are the right way to go here?
IMHO, page providers work best when you want to use an external data source as the authoritative source of page information in EPiServer. All the information about the pages ultimately resides in this external system, even if the changes are being made through the EPiServer UI.
You may want to consider importing the data straight into EPiServer pages and updating it regularly through a scheduled job. That way, the EPiServer SQL DB will hold the external data along with any changes and additions that have been made by editors. Going down this route will provide you with all the goodness of EPiServer version control and make your page content available to EPiServer's text-based search.
On the downside, it isn't terribly elegant and will be a bore to write...;-)