Liquid XML Studio
NotEqual
See Also Send Feedback
Data Mapping > Data Mapper Functions > By Category > Comparator > NotEqual

Glossary Item Box

Function Name
Not Equal
Category
Comparator
Icon
Not Equal
Description
Determine whether one value is not equal to another
Inputs
Value 1 Value that must not be equal to Value 2 for a true output
Value 2 Value to check Value 1 against
Outputs
Result Boolean indicator - true if Value 1 is not equal to Value 2, false otherwise
Properties
None -

Usage

The Data Mapper Comparator Not Equal function allows you to determine whether one value is not equal to another. The values in question may be from the input data source or components within the Mapper, such as Constants or function outputs. Since the Not Equal function outputs a boolean value, it is most usefully used in conjunction with other functions such as Set and Logic components. To apply the Comparator Not Equal function, use the following process:

Create a new Data Mapper file, dragging your XML data source and targets into the editor area. For this example we are using staff_source.xsd, an XML Schema Definition inferred from the following source:

Source XML Copy Code
<staff>
 <employee>
  <first_name>Mark</first_name>
  <second_name>Brown</second_name>
  <started>2001</started>
  <permanent>true</permanent>
 </employee>
 <employee>
  <first_name>Jane</first_name>
  <second_name>Jackson</second_name>
  <started>1998</started>
  <permanent>true</permanent>
 </employee>
 <employee>
  <first_name>Joe</first_name>
  <second_name>Simpson</second_name>
  <started>2008</started>
  <permanent>false</permanent>
 </employee>
 <employee>
  <first_name>Lynn</first_name>
  <second_name>Nicolson</second_name>
  <started>2008</started>
  <permanent>false</permanent>
 </employee>
</staff>

For our target schema we will be using staff_target.xsd, inferred from the following XML:

Target XML Copy Code
<company>
 <staff_member since="2000" contract="false">
  <f_name>Ken</f_name>
  <s_name>Jones</s_name>
 </staff_member>
 <staff_member since="2003" contract="true">
  <f_name>Linda</f_name>
  <s_name>Lee</s_name>
 </staff_member>
 <staff_member since="1998" contract="false">
  <f_name>Paul</f_name>
  <s_name>Mitchell</s_name>
 </staff_member>
</company>

The data models employees within an organisation. Let's assume that, rather than mapping all data values, we only want to map "employee" elements representing staff members who did not start working at the company in a particular year. Here is the Data Mapper with Source and Target imported:

Data Mapper Source and Target

Drag the Comparator Not Equal function from the Component Palette into the mapping area:

Comparator Not Equal Component

Not Equal Added

The Not Equal function takes two inputs representing the values you want to compare. The function output will indicate true if Value 1 is not equal to Value 2, and false if the values are equal. Both inputs and output of the Not Equal function may be connected to items in the XML Reader/ Writer or other components in the Mapper.

Since we want to map only elements whose "started" value is not a particular year, let's say 1998, connect the "started" output in the XML Reader to the Value 1 input in the Not Equal function.

Reader to Not Equal

Now we need to define the value to check against the "started" value. Drag a Constant Value from the Data Type section onto the Mapper. Right-click it and choose Show Properties. Enter an integer Data Type and 1998 as the Value.

Constant Properties

Connect the Constant output to the Value 2 input in the Not Equal function.

Constant to Not Equal

Now each time the Mapper encounters the "started" element, it will check whether it is not equal to 1998. If it is not equal to it, the function will output a value of true, otherwise it will output a value of false. Let's now use this information to filter our data. Drag a Filter function from the Set section onto the Mapper. Connect its Bool input to the output of the Not Equal function and its Nodes input to the "employee" output in the XML Reader.

Filter Added

Now connect the output of the Filter function to the "staff_member" input in the XML Writer. This will ensure that an "employee" element is only mapped if its "started" value is not 1998.

Filter to Writer

Finally let's make the remaining input and output connections. Remember to map "started" to "since" - although we have used this value from the source we have not yet instructed the Mapper to map it.

Inputs and Outputs Connected

We can now execute the transform by pressing Shift-F5 or the Execute button (Execute). The transform is applied and the file we selected as output opens in the editor:

Output XML Copy Code
<company>
 <staff_member since="2001" contract="true">
  <f_name>Mark</f_name>
  <s_name>Brown</s_name>
 </staff_member>
 <staff_member since="2008" contract="false">
  <f_name>Joe</f_name>
  <s_name>Simpson</s_name>
 </staff_member>
 <staff_member since="2008" contract="false">
  <f_name>Lynn</f_name>
  <s_name>Nicolson</s_name>
 </staff_member>
</company>

The output only contains those "staff_member" elements with start dates other than 1998. Most of the Comparator functions are particularly useful when you need to filter or transform your data depending on an unknown range of input values.

The Not Equal function can handle various different data types including numbers and Strings.

See Also