Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

Spring Integration - XQuery Sample

Overview

This sample executes a simple XQuery script. It uses the Spring Integration XQuery module, which is part of the Spring Integration Extensions project. The sample uses one of the following 3 XQuery processors:

The example for Saxon will work out of the box. Sedna and BaseX are in fact XML Databases, which run as external processes. For Sedna- and BaseX-specific setup instructions, please visit:

Running the Sample

From the command line execute:

$ mvn clean package

followed by:

$ mvn exec:java

The application should start up and you will see the following screen on which you can choose which XQuery processor to use:

=========================================================

    Welcome to the Spring Integration XQuery Sample!

    For more information please visit:
    http://www.springintegration.org/

=========================================================
Which XQuery Processor would you like to use? <enter>:
	1. Use Saxon
	2. Use Sedna
	3. Use BaseX
	q. Quit the application
Enter you choice:

Note regarding BaseX

The BaseX dependency conflicts with Sedna. Therefore, this sample applies a separate Maven profile for BaseX. If not triggering that special profile when you try to execute the BaseX example, you may encounter the following error message:

Detected the Sedna library to be present. This conflicts with BaseX. Please start the application from the command line using:

mvn exec:java -Dbasex

Consequently, execute from the command line:

$ mvn exec:java -Dbasex

The BaseX sample will now execute successfully.

Details

The used XQuery Script, located under src/main/resources/data/xquery.xql, is quite simple:

<customers>
 { //customers/customer/name }
</customers>

All it does is extracting the customer names from the following XML document:

<customers>
	<customer id="1">
		<name>Foo Industries</name>
		<industry>Chemical</industry>
		<city>Glowing City</city>
	</customer>
	<customer id="2">
		<name>Bar Refreshments</name>
		<industry>Beverage</industry>
		<city>Desert Town</city>
	</customer>
	<customer id="3">
		<name>Hello World Services</name>
		<industry>Travel</industry>
		<city>Coral Sands</city>
	</customer>
</customers>

The XML document is located at src/main/resources/data/customers.xml.

The resulting XML document should look like:

<customers>
   <name>Foo Industries</name>
   <name>Bar Refreshments</name>
   <name>Hello World Services</name>
</customers>