XML (Extensible Mark-Up Language) is a self-describing format that uses tags or elements (<tagName>value</tagName>) to delimit and organize data. The XML format is often used to send data over the Internet, especially when communicating with web applications via web services.
XML Profiles represent the structure of the various XML documents used within Processes, including all the elements, attributes, looping, and other configuration information. Many Connectors automatically generate XML Profiles for you to use with various Operations. However if you have a proprietary XML structure you can build an XML Profile from scratch.
New to XML? Check out W3 School's online tutorial
.
The XML document used in the steps below can be found here.
To create a new XML Profile:
- Click
New in the Component Explorer of the Build Tab.
- Choose Profile as the Type.
- Enter a name for the Profile.
- Choose the folder in which to save the Profile.
- Choose XML as the Type.
- Click OK.
- Enter an optional description and go to the Options Tab.

Options Tab
If you need to work with a proprietary XML format other than the ones required by the Boomi AtomSphere application Connectors, you can auto-generate the Profile from an XML Schema Definition (XSD file) or even a sample XML file elements. Use the Import button to launch the Import Wizard.

| Name |
Description |
Encoding
(optional) |
File encoding for the XML data.
Options:
- ISO-8859-1
- us-ascii
- UTF-16
- UTF-8
|
Data Elements Tab
The Data Elements Tab contains the actual structure of the XML document. The application uses this configuration to know how to read and write the XML document.
Because XML is a hierarchical structure, the elements and their relationships are represented in a tree structure on the left side.

Adding Elements
Data elements represent the various tags and attributes in the XML file. Element names in the Profile need to match the tag and attribute names exactly.
Every XML Profile has exactly one root element. All other elements are contained within this single root element. Elements can be nested within another element to establish parent/child relationships.
Click the dropdown arrow (
) next to each element to display options to add, insert, and remove fields. You can rearrange elements by dragging and dropping the element name to a different location in the tree.

General View
Click on an element in the tree to display additional configuration information.
| Name |
Description |
| Element/Attribute Name |
Name of selected element. Must match the actual XML tag/attribute name in the source or destination file. |
Namespace
(Attributes only) |
Namespace to use for attribute. |
| Comments |
Free text description. |
| Field Length Validation |
Determines whether data validation should occur on this element (mandatory, length, etc). Most often used in conjunction with the Cleanse Step. |
| Minimum Length |
Defines the minimum allowable length of the element's value. |
| Maximum Length |
Defines the maximum allowable length of the element's value. |
| Data Format Options |
Choose the element data type and specify a format for the value if required. (More...) |
Advanced View (Elements only)
These settings configure how to handle looping and repeating elements. Looping elements such as order line items or contacts within an account are established by setting the min and max occurs appropriately for the detail element. Repeating elements that don't loop in the normal sense are handled using constraints.

| Name |
Description |
| Min Occurs |
The minimum number of times the element can occur. |
| Max Occurs |
The maximum number of times the element can occur. |
Min/Max Usage
- Optional element: min=0, max=1
- Mandatory element: min=1, max=1
- Optional looping element: min=0, max=unbounded
- Mandatory looping element: min=1, max=unbounded
Constraints
If the XML document has multiple instances of the same element (other than in a normal looping context), you can use constraints to define a specific instance of that element, based on its occurrence or the value of the element or one of its child elements. Use the Add and Delete buttons to create or remove constraints for the element.

| Name |
Description |
| Element |
Choose the element to constrain by. This can be the current element or one of its child elements or attributes. |
| Type |
- Value - Constrain the element by a specific text value
- Occurrence - Constrain the element by its indexed position
|
| Value |
The text value or number value to to constrain by. |
 | Example
For example, suppose your XML looked like this:
...
<OrderNotes>
<Note type="specialInstructions">Ship line items immediately</Note>
<Note type="shipMethod">Ground</Note>
</OrderNotes>
...
In order to map to/from a particular "Note" element, you need to use a constraint that references the value of the "type" attribute. Start by defining two "Note" elements with "type" attributes in the tree. For the first, add a constraint and choose the "@type" attribute as the Element, select "Value" as the Type, and enter "specialInstructions" as the Value. Do the same for the second but enter "shipMethod" as the Value. When you look at the profile in a map, you will see two separate "Note" elements to map to/from. |
Namespaces View (Elements only)
Namespaces are a way to qualify XML elements with a prefix to avoid naming conflicts. If your XML document uses namespaces they must be configured in the Profile. Namespaces must be declared before they can be used within the document. The namespace declaration is made in a given element, but then can be used by all its child elements. Use the Add and Delete buttons to declare or remove namespaces for the element.

| Name |
Description |
| Namespace |
The namespace to use for this element. Lists all available namespaces declared within this element or its parents. |
| URI |
Used to identify this namespace. Typically an internet URL like
. |
| Prefix |
Prefix to use with this namespace. All elements in the document with the prefix are associated with this namespace. |
| Comments |
Free text description. |
| Default Namespace? |
If checked, all elements in the document without a prefix are associated with this namespace. The default namespace is typically declared in the root or other high-level element. There is no need to specify a prefix. |
Import Wizard
If you need to work with a proprietary XML format other than the ones required by the Boomi AtomSphere application Connectors, you can auto-generate the Profile from an XML Schema Definition (XSD file) or even a sample XML file elements using the Import Wizard.
Step 1 - Choose File Type
Choose the type of file to import (XML sample or XSD schema file), click the find icon (
) locate the file on your local PC, and click Next. If importing a sample XML file, this is the only step. On the next screen click Finish and review the Profile elements.
Important: You will most likely need to manually modify the Profile by setting the minimum and maximum occurs, removing repeated elements and/or groups of elements, and setting data types and formatting.

Step 2 - Choose the Root Element
Select the root element to use for this XML Profile and click Next. Because schema files can define multiple XML formats you must choose which one to use for this Profile.

Step 2A - Import Dependent Schemas
Some complex schema files can reference other schema files. Click Browse to locate each missing schema on your PC and then click Next. This will bring you to Step 2 to Choose the Root Element.
Note: This is a recursive step, so if the missing schemas in turn reference other schemas you will need to repeat this step until all dependent schemas are imported.

Step 3 - Review
Review and click Finish.
The Profile elements are auto-generated:

Additional Resources
W3C XML Specification
W3 Schools XML Tutorial