summaryrefslogtreecommitdiff
path: root/xsd-examples/cxx/tree/messaging
diff options
context:
space:
mode:
Diffstat (limited to 'xsd-examples/cxx/tree/messaging')
-rw-r--r--xsd-examples/cxx/tree/messaging/README41
-rw-r--r--xsd-examples/cxx/tree/messaging/buildfile4
2 files changed, 30 insertions, 15 deletions
diff --git a/xsd-examples/cxx/tree/messaging/README b/xsd-examples/cxx/tree/messaging/README
index 435a4cf..d3d92c6 100644
--- a/xsd-examples/cxx/tree/messaging/README
+++ b/xsd-examples/cxx/tree/messaging/README
@@ -19,12 +19,18 @@ deposit.xml
protocol.hxx
protocol.cxx
- C++ types that represent the given vocabulary. These are
- generated by the XSD compiler from protocol.xsd. Generation of
- element types instead of parsing and serialization functions is
- requested with the --generate-element-type option. Generation of
- the element map is requested with the --generate-element-map
- option.
+ C++ types that represent the given vocabulary.
+
+ These files are generated by the XSD compiler from protocol.xsd using
+ the following command line:
+
+ xsd cxx-tree --root-element-all --generate-element-type \
+ --generate-element-map --generate-serialization protocol.xsd
+
+ Generation of element types instead of parsing and serialization
+ functions is requested with the --generate-element-type option.
+ Generation of the element map is requested with the
+ --generate-element-map option.
dom-parse.hxx
dom-parse.cxx
@@ -49,10 +55,21 @@ driver.cxx
driver serializes the opaque response object to a DOM document
using the element map and then serializes this DOM document to
STDOUT using the above-mentioned serialize() function.
-
-To run the example on the sample XML request documents simply
-execute:
-$ ./driver balance.xml
-$ ./driver withdraw.xml
-$ ./driver deposit.xml
+To compile and link the example manually from the command line we can use
+the following commands (replace 'c++' with your C++ compiler name):
+
+c++ -DXSD_CXX11 -c protocol.cxx
+c++ -DXSD_CXX11 -c dom-parse.cxx
+c++ -DXSD_CXX11 -c dom-serialize.cxx
+c++ -DXSD_CXX11 -c driver.cxx
+c++ -o driver driver.o protocol.o dom-parse.o dom-serialize.o -lxerces-c
+
+Note that we need to define the XSD_CXX11 preprocessor macro since the
+source code includes libxsd headers directly.
+
+To run the example on the sample XML request documents execute:
+
+./driver balance.xml
+./driver withdraw.xml
+./driver deposit.xml
diff --git a/xsd-examples/cxx/tree/messaging/buildfile b/xsd-examples/cxx/tree/messaging/buildfile
index 62fadda..7be8caf 100644
--- a/xsd-examples/cxx/tree/messaging/buildfile
+++ b/xsd-examples/cxx/tree/messaging/buildfile
@@ -10,9 +10,7 @@ exe{driver}: {hxx cxx}{* -protocol} {hxx ixx cxx}{protocol} $libs testscript
<{hxx ixx cxx}{protocol}>: xsd{protocol} $xsd
{{
- diag xsd ($<[0]) # @@ TMP
-
- $xsd cxx-tree --std c++11 \
+ $xsd cxx-tree \
--generate-inline \
--root-element-all \
--generate-element-type \