You
can retrieve and update the content of resources in the repository.
When you update resources, access control to those resources remains
unchanged between versions. When performing an update, you have
the option of incrementing the major version. If you do not choose
to increment the major version, the minor version is automatically
updated.
When you update a resource, the new version is created based
on the specified resource attributes. When you update a resource
you specify two important parameters: the target URI and a resource
instance containing all the updated metadata. It is important to
note that if you are not changing a given attribute (for example,
the name), the attribute is still required in the instance you pass
in. The relationships that are created when parsing the content
are added to the specific version and are not brought forward unless
specified.
For example, if you update an XDP file and it contains references
to other resources, those additional references will also be recorded.
Suppose that form.xdp version 1.0 has two external references: a
logo and a style sheet, and you subsequently update form.xdp so
that it now has three references: a logo, a style sheet, and a schema
file. During the update, the repository will add the third relationship
(to the schema file) to its pending relation table. Once the schema file
is present in the repository, the relationship will automatically
be formed. However, if form.xdp version 2.0 no longer uses the logo,
form.xdp version 2.0 will not have a relationship to the logo.
All update operations are atomic and transactional. For example,
if two users read the same resource and both decide to update version
1.0 to version 2.0, one of them will succeed and one of them will
fail, the integrity of the repository will be maintained, and both
will get a message confirming success or failure. If the transaction
does not commit, it will roll back in the case of database failure
and will time out or roll back depending on the application server.
You can programmatically update resources by using the Repository
service Java API or web service API.