SnapLogic Tips and Tricks: XML Generator Snap Overview (Part 2)

In the first part of this series, we explained how to use the XML Generator Snap to generate XML based off an XSD. In this post, we will cover how to map to the JSON schema upstream.

Example 2: Mapping to XML Generator via XSD
Lets use a JSON Generator to provide the input order data, such as defined below:

[
 {
 "items" : [{
 "title": "iphone6",
 "quantity": 1,
 "price": 598.00
 },
 {
 "title": "note 4",
 "quantity": 1,
 "price": 599.00
 }
 ],
 "address":"some address",
 "city": "San Mateo",
 "orderId": "1234",
 "name": "Mr. Undecided"
 },
 {
 "items" : [{
 "title": "iphone6",
 "quantity": 1,
 "price": 598.00
 },
 {
 "title": "note 4",
 "quantity": 1,
 "price": 599.00
 },
 {
 "title": "lumina",
 "quantity": 1,
 "price": 0.99
 }
 ],
 "address":"some address",
 "city": "San Mateo",
 "orderId": "1234",
 "name": "Mr. Even more Undecided"
 }
]

We then map the data using the Mapper Snap, which has access to the XSD of the downstream XML Generator Snap of the previous example (now with an added input view).

xml-gen-3

Here we map the items to the item list on the target. Further we map the city, address, country and name to the shipTo object on the target and then finally we map the name against orderperson and orderId against @orderId on the target. The @ indicates we map against an XML attribute.

Hint: the Mapper Snap was enhanced in the Fall 2014 release to allow viewing the data on the in/output while doing the mappings (on the bottom, expanded with the arrow in the middle)

Lets look at the output of the XML Snap:

xml-gen-4

Here we see that each incoming order document was translated into an XML string. We include the original data from the input view, in case it is further needed downstream.
The XML Generator Snap can validate the generated content if needed using the “Validate XML” property.

In our next post in this series, we will demonstrate how the XML Generator Snap validates the generated XML against the XSD.

Other Resources:

Category: Product

We're hiring!

Discover your next great career opportunity.