Learn more about XML input structure, XML tags for portal resources, attributes for special purposes such as localdata, objectid, and more. Also find information about action attributes that determine the type of processing to be applied to the portal resource. There are syntax restrictions that should be considered as well as information about how to determine the objectids for portal resources.
The top level structure of an XML request or response is always as follows:
<?xml version="1.0" encoding="UTF-8"?>
<request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd"
type="export|update">
<portal . . . >
definition of configuration parts to be exported or updated
</portal>
<status . . . >
success or failure indication for the processing
</status>
</request>
The type attribute indicates whether the XML request contains specifications for exporting or for updating portal resources.
The portal section describes the parts of the portal configuration that should be exported or updated. The contents of the hierarchy used are described in more detail in the following sections.
The status section is optional; in an XML response it indicates success or failure of the requested operation. If a status element is present in a XML request, the server simply ignores it.
The simplest request that you can send to a server is the following:
<?xml version="1.0" encoding="UTF-8"?>
<request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd"
type="export">
<portal action="export"/>
</request>
This request exports the entire configuration of the portal. You can look at the contents of the response to see how the configuration of individual portal resources, such as portlets or pages, is represented in XML elements and attributes.
Additional to the export and update request types, a third request type export-orphaned-data is available for the special scenario of deleting of orphaned data.
The portal resources are represented by the following XML tags:
The Task.xml sample shows you how to schedule the cleanup of portal resources.
You can either specify the name attribute of users and groups with a full DN (distinguished name) as in uid=wpsadmin,cn=users,... , or with a short ID as it is used for portal login, for example wpsadmin. An XML response file from a portal export request always contains full DNs.
With regards to the user tag there are two special cases for which you have to specify particular attributes, depending on the task you want to perform:
Both cases are described in the following sections.
<request . . . export-users="true" . . .>
If
you want to export groups without the members, set the export-users flag
to no-member.| Attribute | parameter tag with name=" " | Comments |
|---|---|---|
| firstname | givenName | |
| lastname | sn | |
| name | uid | |
| n/a | cn | This is a mandatory parameter tag for respresenting the LDAP atttribute. |
Example: You can define the first name of a user at creation by using either the attribute firstname or the parameter tag with the givenName attribute. If you use both and specify two different names, then the value specified by givenName is exported as the attribute firstname. Example XML export request:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Description of this command file: Create 1 users -->
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd"
type="update" create-oids="true">
<portal action="locate">
<user action="update" firstname="John_1" password="password"
lastname="Miller" name="John's name">
<description>John Miller</description>
<parameter name="cn" type="string" update="set">John Miller</parameter>
<parameter name="givenName" type="string" update="set">John_2</parameter>
</user>
</portal>
</request>
This request sets the value John_2 for the firstname attribute.
On some LDAP servers, where the cn is part of the distinguished name, you may not be able to update the cn.
Deregistering users and groups from the portal: If portal users or groups have been removed from the user registry, but not from the portal database, or if users have been muted, for example after too many wrong password attempts, you can export these users and groups for later removal by using the cleanup-users attribute with the request tag. To export these users and groups, set the cleanup-users flag on the main request tag to true as follows:
<request . . . cleanup-users="true" . . .>
If you set this property to true, all users and groups that no longer exist in the configured user repository, such as LDAP, are exported with their action set to delete. You also need to set the export-users attribute to true.
Before re-importing the file, you need to review and edit the result file and remove all users and groups that you want to keep in the portal database. During XML import all users and groups that remain listed in the file will be removed from the portal database.
The CleanupUsers.xml sample XML file is an example for exporting users and groups.
After you have integrated a WSRP service, the portal handles it like a regular local portlet. For example, you can add the portlet to pages.
For standard portlets, the uid attribute must be constructed by the id attribute of the portlet-app subelement and a .webmod suffix or, if the id attribute is not specified, the WAR filename and a .webmod suffix. Example:
<web-app action="update" active="true" removable="true" uid="jsr_bookmarks_id001a.webmod">
. . . . .
<portlet-app action="update" active="true" uid="jsr_bookmarks_id001a">
Depending on the path location of your WAR files, previously exported WAR files might not be found during an XML import due to incorrect path information. For information about how to use the <url> subtag with the <web-app> tag refer to Importing WAR files.
For standard compliant portlets, the uid attribute must match the id attribute of the portlet-app element that is defined in the deployment descriptor. If the id attribute is not set in the deployment descriptor, specify the WAR file name.
When the application is used in a WSRP context, the portlets that are contained in the application are defined remotely and can be integrated by using the XML configuration interface. In this case portlet applications need to define a groupid attribute.
After you have deployed a WAR file locally or integrated a WAR file as a WSRP service, you can also create additional portlet applications (and the contained portlets) with different settings. This is also known as copying or cloning the portlet application.
When you create a new portlet in an additional application, it must refer to one of the servlets that was defined in the web module. In a portlet.xml deployment descriptor, this element corresponds to the concrete-portlet tag.
All content nodes in the portal are organized in a hierarchy; at the root of this hierarchy is the special content node wps.content.root. A content node of the type page can be derived from another parent content node so that it partially overrides or extends the layout of its parent. While the portal and the portlet for Working with pages always display an aggregation of a composition layer and all of its ancestors, the XML configuration interface must manage every layer separately.
If you update an existing page with an XML script and the script specifies components inside that page, the layout-processing attribute of that page defines how those new components interact with the existing layout of the page.
For personalized content, where only portlet parameters but no page structure is changed, use the following attributes with the portletinstance tag:
For more information about setting user credentials by using the XML configuration interface refer to the XML sample file UpdateVault.xml.
The following tags and attributes are for portal internal use only. If you encounter these tags or attributes in an XML export script that you want to use for later update, do not change these tags or their content in any way.
The following tags are available for portal resources for tagging and rating: tag, rating, custom-resource, and category-instance. For more detailed information about these tags refer to the topic about Using the XML configuration interface to administer tags and ratings.
Note that the XML configuration interface only manages resources of the portal core and not those of additional components, such as Portal Personalization.
Additional to the tags that represent portal resources as listed in the preceding section, XML provides the following tags or attributes for special purposes:
When you create XML files that contain lots of translated texts in different languages, it is sometimes more convenient to specify those texts in properties files instead of including them in the XML script. Therefore you can alternatively use a URL to specify a properties file. XML will then read the title, description, and keyword texts from that file.
If the WSRP Producer requires a registration of the WSRP Consumer with certain registration properties, you must specify these properties as parameters.
Optionally, you can use the preferences element to define which user attributes you want to have transferred in the WSRP communication with the Producer. These user attributes are the user attributes that are defined in LDAP.
Alternatively, a resource can be a private resource of a specific owner, or it can be managed externally.
When you specify users or groups in the access-control section of a resource, you can either use the full DN as in uid=wpsadmin,cn=users,... , or the short ID as it is used for portal login, for example wpsadmin. An XML response file from a portal export request always contains full DNs.
If you execute an XML update that assigns a unique name which is already used on the system, the execution will fail. You can delete the unique name for a resource by setting it to the value undefined. When you create unique names in XML scripts that you run on many different portal installations, for example to install add-on portlets and pages, you should use a specific prefix for any unique names that you assign, to minimize the chances that they clash with existing unique names on the system. For example, the prefix wps. is used for all unique names that are created as part of the portal installation.
<content-node ...
<component uniquename="component_1"...
<component uniquename"component_2"...
<component uniquename"component_3"...
. . . . .
</component>
</component>
</component>
</content-node>
XMLC0142E: Unique name unique_name is already used in the portal.
When ordinals for resources are set in an XML script, you have the following options for specifying them:
An XML export response file always contains the literal ordinal values as they are stored in the portal database. Note that specifying a position indicator or special value will not necessarily produce the required effect if you are working with derived pages, because in these cases the order of elements depends on the individual user viewing the portal.
The following two attributes have been added for the portletinstance tag. Use them for personalized content, where only portlet parameters are changed, but not the page structure.
<portletinstance ...>
<global-target-settings>
<target actionref="orderDetails" update="set"/>
</global-target-settings>
</portletinstance>
You can find additional information on the meaning and possible values for configuration elements and attributes in the schema annotations.
All XML elements that represent portal resources have a required action attribute. The action attribute of XML elements determines what type of processing is applied to the portal resources. The following actions are allowed:
| Action | Resulting processing |
|---|---|
| locate | Identify the portal resource corresponding to this XML element (usually required as a context for other actions). |
| create | Create a new portal resource with the given attributes. A new resource is always created, even if another resource with the given name already exists. |
| update | Update the configuration of the corresponding portal resource with the given configuration data (attributes and dependent configuration data elements); if no corresponding portal resource can be found, it is created. |
| delete | Delete the portal resource corresponding to this XML element. |
| export | Include an XML representation of the portal resource corresponding to this element in the output of the XML command. |
Example: the following XML snippet sets the portlet "MySpecialPortlet" to inactive status:
<portlet name='MySpecialPortlet' action='update' active='false'/>
| Action | Allowed actions in subelements |
|---|---|
| locate | locate, create, update, delete, export |
| create | locate, create, update |
| update | locate, create |
| delete | no subelements allowed |
| export | no subelements allowed |
Two or more XML elements might correspond to the same portal resource. For example, it is possible to have one element that creates a portal resource and another that updates the same resource with new configuration data.
Configuration data elements do not have an associated action, but most of them have an update attribute that determines the type of update that is applied. The following values are possible:
| update | Resulting processing |
|---|---|
| set | The corresponding configuration data (for example, parameter) is set, or, if it does not yet exist, it is created. |
| remove | The corresponding configuration data (for example, parameter) is removed |
Note that configuration data elements are processed only if their parent has an update action. For example, the following fragment will not update the capability information for the given page:
<client uniquename="smart.browser" action= "locate">
<client-capability update="set">HTML_JAVASCRIPT</client-capability>
</client>
All specified actions are processed in the textual order in which they are specified in the XML input (document order). If there are any interdependencies between the actions, the user (or program) providing the XML input is responsible for ordering the elements correctly.
All resources in the portal (except for the portal and the settings resources) have an object ID that uniquely identifies them in the portal. That ID is generated by the portal when the resource is created. These object IDs are represented by the objectid attributes in an XML export.
References between resources are represented by these object IDs: One resource has a reference attribute that contains the object ID of another resource. For example, a portlet instance that is to be displayed on a page must reference a portlet. Therefore the portletinstance tag has a portletref attribute that corresponds to the objectid attribute of the portlet. Consequently, you see the following snippets in an XML export:
<portlet action="update" . . . objectid="Z3_G0Q03FH200A5202QRHAG4320G0" . . . >
. . .
<portletinstance action="update" . . . portletref="Z3_G0Q03FH200A5202QRHAG4320G0" . . . >
All resources get an object ID assigned in the portal when they are created. That object ID can not be altered later. When you create new resources in the portal administrative user interface, they automatically get a new object ID generated by the portal. When you create a new resource with XML, it also always gets a new object ID, if you do not specify one in the XML. Note that you can not simply "invent" object IDs for new resources, because they must conform to a correct internal representation. The only way to get valid object IDs is from an XML export.
In XML scripts the objectid attribute of a resource is used for the following purposes:
You can use object IDs to uniquely specify resources that you want to administer. For example, the following snippet deletes a specific known page. (You would normally get the object ID of the page from an XML export.)
<content-node action="delete" objectid="Z6_G0Q03FH200A5202QRHAG4320O0"/>
The following snippet looks up a page with a specific object ID. If it cannot find the object ID, it creates it. If it already exists, it updates it.
<content-node action="update" objectid="Z6_G0Q03FH200A5202QRHAG4320O0" type="page" . . . >
The next snippet creates or updates a theme with a specific object ID and then assigns that theme to a label:
<theme action="update" objectid="ZJ_G0Q03FH200A5202QRHAG4320S1" . . .>
. . .
<content-node action="update" objectid="Z6_G0Q03FH200A5202QRHAG4320O0"
type="label" themeref="ZJ_G0Q03FH200A5202QRHAG4320S1" . . . >
If the theme already exists with the specified object ID, you can directly use that object ID in references without having to include the theme in the XML script. The next snippet assumes that the theme has already been created. For example, it might have been copied from another server in a previous step. Therefore the snippet only assigns the theme to the label:
<content-node action="update" objectid="Z6_G0Q03FH200A5202QRHAG4320O0"
type="label" themeref="ZJ_G0Q03FH200A5202QRHAG4320S1" . . . >
In this case, the theme is looked up in the portal data store using its object ID ZJ_G0Q03FH200A5202QRHAG4320S1. If no theme with that object ID is defined in the portal, you get an error during the XML validation.
An object ID is globally unique. Two object IDs that were automatically generated by different portal installations can never be the same. Therefore you can exchange resources between different portal installations using XML export and update requests without having to worry about possible object ID conflicts. The only way that you can ever duplicate an object ID is by transferring a resource (including the object ID) to another portal with an XML export and update.
In many cases, this is the required behavior. However, if you do not want to copy the same resource to another portal, but you want to create a new resource instead, regardless of existing OIDs and without any chance of causing conflicts, you must either use symbolic object IDs or delete the objectid attribute from the XML script. In the latter case the portal creates a new object ID.
In some cases, you might need to use objectid attributes to express references between resources in your XML script, but you do not want these to be read from or written to the portal database. In this case, the object ID would be only a symbolic reference inside the XML script. For example, you might want to create a new theme and page, and reference the theme in the page. Nevertheless you want to let the portal chose an object ID for it because you do not want to accidentally overwrite an existing resource.
There are two ways to achieve this:
<request . . . create-oids="true" . . . >
In this mode, all object IDs are not written to or read from the portal database. Instead, their only purpose is to express the linking between resources in the XML. When the XML processing creates new resources, they are created with a new system generated object ID, not with the object ID specified in the XML.
Note that even in symbolic object IDs, anything after the first space is not significant for processing. For example, you could use the following snippet to create a portlet and put it on a page using a symbolic object ID:
<portlet action="update" . . . objectid="Welcome_Portlet" . . . >
. . .
<portletinstance action="update" . . . portletref="Welcome_Portlet" . . . >
As the object ID values are purely symbolic, you cannot use them in a reference without first "defining" them in the same XML script. Before you can use the portletref="Welcome_Portlet" attribute specification in an XML update, you must also have a portlet with objectid="Welcome_Portlet" defined in the same XML; otherwise a syntax error is reported.
Of course, the object IDs in the XML are also not used for looking up a resource. If you want to refer to existing resource, you need to use a unique name instead. For details see the information later in this section. In ID generating mode, the following snippet locates an existing portlet by its name, "defines" a symbolic object ID for it and places the portlet on a page:
<portlet action="locate" name="Welcome Portlet" objectid="Welcome_Portlet">
. . .
<portletinstance action="update" . . . portletref="Welcome_Portlet" . . . >
As object IDs are not used to identify existing resources in ID generating mode, it is good practice to define unique names for all resources that are created in such scripts. That way, if the script is executed twice, the second execution can find and update the resource by its unique name, instead of creating two identical resources.
When you create resources using symbolic object IDs, it can sometimes be useful to know the actual object IDs of the new resources. You can set the export-mapping flag on the main request attribute to obtain this information:
<request . . .export-mapping="true" . . . >
When you set this flag, a mapping section is appended to the XML response. For every symbolic object ID given in the input, this mapping shows the actual object ID in the portal data store.
The ID generating mode is useful if you want to create an XML script that installs a group of new resources and is executed on many different portal installations. This can be, for example, a part of the installation procedure of a portal add-on that you give out to other parties. In this case, you have no control over the systems on which the XML script is executed, and it is of no interest to you which object IDs the resources actually get.
The identity of the objects that are configured in the XML script is expressed by their object ID. Therefore you should use "real" object IDs in your scripts, when you want the objects in your XML to retain their identity. For example, when you use an XML export request and the resulting response file to copy a resource from a staging to a production system, the resource is created on the production system with the same object ID as on the staging system. This way you can establish a correspondence between the two resources. When you later transfer the same resource again, the XML processing looks up the resource by its object ID, finds that it already exists, and updates the existing resource instead of creating a new one.
When setting up the target system in such scenarios, you should use only the XML configuration interface to copy resources from the source system. If you deploy portlets on the target system during the portal installation or if you deploy them using the administration portlets, they will not have the same object IDs as on the source system, so you can run into problems when you later copy other resources that reference them.
XML elements with locate, export, update and delete actions need to refer to existing resources in the portal. Those resources must be identified by specific attributes.
The relevant attribute to identify a resource in the portal is its object ID. Every resource must have an object ID and it must always be unique. Therefore, if you specify an objectid attribute for a resource, and you do not use symbolic object IDs as described earlier, the resource is looked up by that object ID.
Of course, there are cases where you do not have literal object ID values available when you write your scripts, especially if you are writing scripts that are executed on installations that you are not administering yourself. Therefore you can also specify other identifying attributes to look up resources. If the lookup by object ID fails, the XML processing also attempts to find the resource using other attributes.
An alternative method for looking up portal resources is to use a unique name. Every resource that has an object ID can also have an optional unique name, and the unique name must unambiguously identify the resource. Unique names are useful if you need a symbolic way to identify certain resources. They allow easy porting of configurations between portal installations. In contrast to object IDs, it is possible to modify unique names of resources, which can be an advantage in certain situations. To set a unique name for a resource, use the Custom Unique Names portlet under Administration, Portal Settings.
If a unique name is not given or cannot be found, some resources can also be searched using other attributes. Some resources can be looked up without any attribute information, because they exist only once in their context.
The following table shows the relationship between resources and the attributes you can use for locating them.
| Resource key | Attributes used for locating the resources |
|---|---|
| portal, global-settings, services-settings | None; these items always exist only once. |
| markup, virtual-resource, user, group, credential-segment, credential-slot, portlet | name |
| web-app, portlet-app | uid |
| servlet | name Note: The refid is
used as fallback for XML imports from earlier portal versions that
do not contain the name attribute.
|
| portletinstance | None; there is at most one portletinstance per component. |
| url-mapping-context | label |
In any case the lookup process first tries to find the resource by its object ID, if specified, and then by its unique name, if that is specified. Only when those attempts fail, other attributes are used for locating the resource.
You can specify more than one resource with an export action in the same request and thus generate an export response file that contains a selected group of resources, for example several portlets and pages. The XML configuration interface provides two additional features that allow you to export selected subsets of the portal resources:
Example: the following fragment exports a subtree of the content hierarchy that starts with the label as specified:
<content-node uniquename="MyPages" action="export"
export-descendants="true" />
<client objectid="*" action="export"/>
The XML configuration interface offers no other "query" features, that allow you to export resources based on specific criteria. The only other possibility to export a selected subset of resources is to specify all the resources individually with their object IDs or other identifying attributes in your XML input.
Normally, only that part of the configuration data must be specified for an XML element which is necessary for the required operation. For example, when deleting a portlet, it is sufficient to specify its reference ID to identify it; it makes no sense for this operation (although it is not forbidden), to specify a new active state, since the portlet is removed anyway.
When creating a new portal resource, some required attributes (depending on the type of resource) must be specified. Others can be omitted. They are then set to a default value.
When you update an existing portal resource, all attributes are optional, except those required to locate the element. The omitted attributes remain unchanged. In a few cases of page layout attributes, there is the possibility of explicitly specifying an "undefined" value. This means that the attribute is not defined at the respective level, but inherited. For example, if the skin for a component is undefined, it will be inherited from the setting of its page.
Note that there is a semantic difference between the following XML fragments:
<content-node uniquename="MyPages" action="update" active ="true"/
and
<content-node uniquename="MyPages" action="update" active ="true" skinref="undefined"/>
The first fragment only modifies the active attribute of the page and leaves its skin setting unchanged; the second fragment additionally resets the skin to the undefined value (whatever the previous skin setting was), so that the page will always display in the portal default skin.
When you use an XML script to update an existing page and specify a new layout for this page, that is, the content-node element for the page has child elements of type component that are created or updated, you normally use the XML script to define a complete new layout of the page instead of combining the existing layout with your new definitions. Therefore XML applies special processing in this case as follows: After the layout has been updated, all components in the page that existed before but were not updated by the script are deleted. The result is that the page will only contain those layout components that are specified in the XML script and no remainders of its previous layout. Otherwise you could easily end up with invalid component structures.
In particular, this means that if you update a page layout in ID generating mode, all existing components of the page will be deleted and a new layout will be created instead - even if the new layout is identical to the old one. This happens because components can only be looked up by their object IDs and lookup by object ID is not possible in ID generating mode. Therefore all the components specified in the XML are created, because they cannot be found for updating, and all existing components are deleted because they were not updated.
In the rare case that you actually want to update specific components in the page but do not want to delete the existing page layout, you can turn off this special processing by specifying the attribute preserve-old-layout="true" for the content node.
To create new portlet applications, additional resources (WAR files) are required. Those files are not included in the XML input. Instead, the XML input contains references to external URLs as in the following example:
<web-app uid="MySpecialPortlet" action="create">
<url>file://localhost/C:/myportlets/Special.war</url>
</web-app>
The referenced WAR files must be accessible to the portal when the XML request is processed. When you update a package and specify a <url> subelement, the WAR file is re-deployed, just as if you had selected the update of a portlet application in the browser. If you intend to deploy the same configuration into several new portals, you can set the URL to http://deploymentserver/path/filename.war . This way there is no need to copy all WAR files to each server machine. The deploymentserver machine needs to be set up properly so that the WAR files can be accessed by http.
An XML export request does not create any required archives. Instead, it only creates pseudo-references in the form of file URLs that rely on the assumption that the file resides in the deployed/archive subdirectory of the WPS installation. If these assumptions are not met, an exported portal configuration cannot be successfully re-created without editing the generated URLs manually. A back up of a portal configuration requires that the WAR files required for redeployment (which are not used in the running portal) are saved in addition to the XML export.
<content-node action="update" active="true" allportletsallowed="true"
content-parentref="homepage" create-type="explicit"
domain="rel" ordinal="1500" themeref="ibm.theme"
type="staticpage" uniquename="samplestaticpage1">
...
<pagecontents markup="html" display-option="inline">
<url>file:///$server_root$/doc/xml-samples/index1.zip</url>
</pagecontents>
?
</content-node>
The referenced archive or compressed
files must be accessible to the portal when the XML request is processed.
For details about the administration of static pages with the XML
configuration interface refer to the topic about Using the XML configuration
interface to work with static pages.Most portal data is cached on a per-user basis, therefore many modifications become visible to users only after a new logout and login. For example, a page that is created on behalf of users does not immediately become visible to those users if they are currently logged in. Other modifications only become visible after some timeout when internal caches are refreshed with current data. For some settings the portal needs to be restarted to activate the updates. Therefore, if an update you made does not become visible, restart the portal.
In general, the effect of an XML update is the same as if the update was made using administration portlets using a new browser and login session.
When you use XML scripts to create, update or delete resources, the changes in the portal database are grouped into transactions. All changes that are part of one transaction are either executed completely or not at all.
The XML configuration has two different levels of grouping database updates into transactions. The grouping is defined by the transaction-level attribute of the main request element, which can have the following values:
Transactionality applies only to changes in the portal database. The following aspects of resources are not stored in the portal database and therefore not included in transactions:
An example of what this means is as follows: When you deploy a WAR file in an XML script that uses transaction-level="request" and an error occurs later in the execution of the XML script, the transaction is canceled, so the entries for the portlet are removed from the portal database. However, the corresponding enterprise application has already been deployed into WebSphere Application Server and is not removed. This will not further affect the operation of the portal; you can simply deploy the portlet again later. You will just have an unused enterprise application in WebSphere Application Server. Remove it manually.
If errors occur during the processing of a script, you have generally two options to continue after fixing the cause of the error:
If the error occurs during the validation of the XML script, and no resources have actually been processed so far, you can simply re-execute the entire script. You can verify this by reviewing the progress reporting comments in the XML response.
If the error occurs after some resources have actually been processed, the best option depends on several circumstances:
To make error recovery easier, use scripts that can be re-executed partially or completely without the possibility of duplicating resources. You do that by specifying an object ID or another identifying attribute on every resource in the script and by using only update actions. See Mandatory and optional attributes for more information on how to specify attributes. This way resources are simply overwritten with the same configuration if they have already been created.
In an example configuration, you might have two WebSphere Portal Express environments which are both configured for security with an LDAP server. However, the two LDAP servers have different directory structures. For example, this can be different LDAP suffixes for the users or groups. You can use the following XML script for transferring the portal configuration from one portal to the other:
<?xml version="1.0" encoding="UTF-8"?>
<request
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd"
type="export"
export-users="false">
<portal action="export"/>
</request>
When you use this XML script to transfer the configuration data between these two environments, be aware of the following:
<?xml version="1.0" encoding="UTF-8"?>
<request type="update"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd">
<portal action="locate">
<content-node action="export" name="*" create-type="explicit"/>
</portal>
</request>
This procedure exports all pages which
are not private, along with the information that is required to put
the portlets on the pages. However, you must either deploy the portlet
applications on the target portal prior to running the XML import,
or you must modify the XML script to deploy the portlets in the same
run.