Table of Contents
- Moving namespace declarations to root node
- Stopping automatic namespace prefix generation in Render XML
- Removing namespaces and namespace prefixes
- Specifying the namespace prefix to be used
- Information to be sent to TIBCO Support
This article discusses the options available for controlling the way TIBCO ActiveMatrix BusinessWorks? creates/manages namespaces and namespace prefixes. Download the sample project that illustrates the options from Resources below.
Moving namespace declarations to root node
When a schema imports elements from different namespaces, a mapping places the namespace declarations in the child nodes of the output. See the following example.
AB12 2 XY34 Test Priority
To move these to the root node, follow these steps:
-
Select the root node under the "Input" tab of the activity
-
Click the "Edit Statement" button (!)
-
Select the option "Exclude result prefixes"
ActiveMatrix BusinessWorks does not output the prefixes that are used in the stylesheet but not used in the resulting XML. When processing a node, ActiveMatrix BusinessWorks outputs only the necessary prefixes of the node and, therefore, the prefixes needed by child nodes have to be declared multiple times (see ProductID and ProductDescription in the above sample XML). When you check "Exclude result prefixes" but set its value to an empty string, ActiveMatrix BusinessWorks starts outputting the prefixes. More prefixes appear in the output XML but only in the root node. Then, when ActiveMatrix BusinessWorks processes the child nodes it no longer needs to write the prefixes.
The process defined in the folder Case1 in the attached project covers this scenario. After following the above steps, run the process and you should see the following output:
AB12 2 XY34 Test Priority
Please note that this is applicable to mapping in any activity.
Stopping automatic namespace prefix generation in Render XML
When using Render XML activity, BW defines a namespace prefix and uses it in the output XML string. You can select the option"Format using default namespace prefix" under the "Configuration" tab for the activity to prevent this.
Run the process definition in folder Case2. The output should be:
test 123
After selecting the option "Format using default namespace prefix", the output will be:
test 123
Removing namespaces and namespace prefixes
If you want to remove all namespaces and prefixes in an XML instance, you can use a Transform XML activity with the following stylesheet:
The process definition in folder Case 3 demonstrates this. Run the process definition and compare the output of Render XML activity and Transform XML activity.
Specifying the namespace prefix to be used
You can specify the prefix to be used for a particular namespace the following way:
-
Select the process definition and click "Namespace Registry" under the "Configuration" tab
-
Specify the desired prefix for the namespace
-
Select the activity in the process definition
-
Select the root node under the "Input" tab of the activity
-
Click the "Edit Statement" button (!)
-
Select the option "Exclude result prefixes"
In the process definition under folder Case4, the prefix ?test? is used for the namespace ?http://example.com/ord.xsd?.
Please note that this is applicable to mapping in any activity.
Information to be sent to TIBCO Support
For any related issues, please open a Support Request (SR) with TIBCO Support and upload the following:
-
Simplified ActiveMatrix BusinessWorks project with all necessary files.
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now