summaryrefslogtreecommitdiff
path: root/cpp/examples/xml-exchange/README.txt
diff options
context:
space:
mode:
authorStephen D. Huston <shuston@apache.org>2011-10-21 01:19:00 +0000
committerStephen D. Huston <shuston@apache.org>2011-10-21 01:19:00 +0000
commitebfd9ff053b04ab379acfc0fefedee5a31b6d8a5 (patch)
treedcfb94e75656c6c239fc3dcb754cd2015126424d /cpp/examples/xml-exchange/README.txt
parent5eb354b338bb8d8fcd35b6ac3fb33f8103e757c3 (diff)
downloadqpid-python-ebfd9ff053b04ab379acfc0fefedee5a31b6d8a5.tar.gz
Undo bad merge from trunk - merged at wrong level.
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-2519@1187150 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/xml-exchange/README.txt')
-rw-r--r--cpp/examples/xml-exchange/README.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/cpp/examples/xml-exchange/README.txt b/cpp/examples/xml-exchange/README.txt
new file mode 100644
index 0000000000..85caebe352
--- /dev/null
+++ b/cpp/examples/xml-exchange/README.txt
@@ -0,0 +1,53 @@
+This example shows how to program a simple application
+using the XML Exchange.
+
+[Note: The XML Exchange is not a standard AMQP exchange type. To run
+this example you need to have a broker that has support for the xml
+exchange. If you are compiling the broker from source please refer to
+the INSTALL notes from qpid.]
+
+To run the example, execute the programs in the
+following order:
+
+1 ./declare_queues
+2 ./listener
+3 ./message_producer (in a separate window)
+
+The XML Exchange must be explicitly declared. Bindings
+are established using queries in XQuery. These queries
+can reference message content, message application
+properties (which are declared as external variables
+in the XQuery), or both.
+
+Once this is done, message producers publish to the
+exchange using the exchange name and a routing key,
+just as for other exchange types. Message consumers
+read from the queues to which messages are routed.
+If a message does not have XML content, or is
+missing message application properties needed by
+the query, the query is not routed.
+
+Queries can use message application headers to
+provide functionality similar to JMS selectors.
+If a query does not use the content of a message,
+the message content is not parsed, and need not
+be XML.
+
+The XQuery processor, XQilla, does path-based
+document projection, so once the portion of
+a document needed to evaluate a query has
+been read, it stops parsing the document.
+Suppose a long document has a header section.
+You can indicate in the query that only
+one header section needs to be queried,
+and there is no need to parse the entire
+document to see if there are further header
+sections, using a path like this:
+
+./message/header[1]/date
+
+If you used a path like this, all children
+of the message element would be read to
+see if there are further headers:
+
+./message/header/date