The XML Gateway Message Designer supports mapping to and from a DTD or an existing XML message. The use of an existing production XML message provides visibility to all the DTD extensions as well as duplicate nodes and elements necessary to support the actual business document. The use of a DTD is necessary if an existing XML message is not available. Using a DTD may require adding duplicate nodes, new segments, or elements to accommodate additional data.
When modifying an Oracle prebuilt message map or when creating a new message map that requires DTD extensions, follow the DTD extension guidelines outlined below. The Open Applications Group (OAG) has very strict guidelines regarding DTD extensions.
The only DTD extensions allowed are in the USERAREA. You can add elements in the appropriate OAG defined USERAREA or create new USERAREAs under the OAG defined USERAREA.
Refer to the OAG guidelines section 2.11 titled "USERAREA Extensions" in the Open Application Group's Integration Specification (available at http://www.openapplications.org).
Use USERAREAs to support descriptive flexfields as well as other extensions.
The OAG guidelines are as follows:
| Top Level Name | <vendor.transaction.context.USERAREA> |
| Element Name | <vendor.elementname> |
| Reference File Name | <vendor prefix>_<product>_<version>.dtd |
Oracle's adaptation of the OAG guidelines is as follows:
| Top Level Name for Descriptive Flexfield Extensions | <Oracle.transaction.name of flexfield.USERAREA> Example: Oracle.ARInvoice.ARLINES.USERAREA |
| Element Name | <Oracle.attributen> where n is the number of attributes defined for the table |
| Top Level Name for other Extensions | <Oracle.transaction.product_prefix.USERAREA> Example: Oracle.ARInvoice.AR.USERAREA |
| Element Name | <Oracle.elementname> |
| Reference File Name | Oracle_<application shortname>DTDExtensions_<version>.dtd Example: Oracle_ARDTDExtensions_001.dtd |
XML Gateway provides a template to be used as the basis to create the application-specific DTD extensions. The template contains a definition for the generic flexfields named "attribute*" where * is the number of attributes defined for the table. The application-specific DTD extension files are source-controlled with the specific application.
The application-specific DTD extension file can be updated as follows:
Top level USERAREA names representing the application table containing the descriptive flexfields
Descriptive flexfield names
Top level USERAREA names for other extensions
Element names for other extensions
The updates must be added after the existing USERAREA tag.
Use Conditional Node Mapping and key on Top Level USERAREA name to ensure that you are mapping from and to the correct group of flexfields or application extensions.
Be sure to remove extension definitions from the reference file if you are removing them from the message map.
Update the message map to incorporate the new fields introduced as a DTD extension. The updated message map and DTD extension files must be loaded in the XML Gateway repository for access by the XML Gateway Execution Engine. Refer to How to Load/Delete Message Maps and DTDs for the details.