summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/binary/cdr
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cxx/tree/binary/cdr')
-rw-r--r--examples/cxx/tree/binary/cdr/README36
-rw-r--r--examples/cxx/tree/binary/cdr/driver.cxx87
-rw-r--r--examples/cxx/tree/binary/cdr/library.xml52
-rw-r--r--examples/cxx/tree/binary/cdr/library.xsd75
-rw-r--r--examples/cxx/tree/binary/cdr/makefile119
5 files changed, 0 insertions, 369 deletions
diff --git a/examples/cxx/tree/binary/cdr/README b/examples/cxx/tree/binary/cdr/README
deleted file mode 100644
index 914d27c..0000000
--- a/examples/cxx/tree/binary/cdr/README
+++ /dev/null
@@ -1,36 +0,0 @@
-This example shows how to save/load the object model to/from CDR
-(Common Data Representation) binary format using ACE CDR streams.
-Support for other data representation streams can be easily added. You
-will need the ACE library[1] installed in order to build and run this
-example.
-
-[1] http://www.cs.wustl.edu/~schmidt/ACE.html
-
-The example consists of the following files:
-
-library.xsd
- XML Schema which describes a library of books.
-
-library.xml
- Sample XML instance document.
-
-library.hxx
-library.cxx
- C++ types that represent the given vocabulary as well as data
- representation stream insertion and extraction operations. These
- are generated by XSD from library.xsd. Note that the
- --generate-insertion and --generate-extraction options are used
- to generate the insertion and extraction operations for ACE CDR
- stream.
-
-driver.cxx
- Driver for the example. It first calls one of the parsing functions
- that constructs the object model from the input XML file. It then
- saves the object model to ACE_OuputCDR and loads it back from
- ACE_InputCDR. Additionally, it prints the resulting binary
- representation as well as the content of the object model before
- saving it to the CDR stream and after loading it from the CDR stream.
-
-To run the example on the sample XML instance document simply execute:
-
-$ ./driver library.xml
diff --git a/examples/cxx/tree/binary/cdr/driver.cxx b/examples/cxx/tree/binary/cdr/driver.cxx
deleted file mode 100644
index ec1ff32..0000000
--- a/examples/cxx/tree/binary/cdr/driver.cxx
+++ /dev/null
@@ -1,87 +0,0 @@
-// file : examples/cxx/tree/binary/cdr/driver.cxx
-// copyright : not copyrighted - public domain
-
-#include <memory> // std::auto_ptr
-#include <cstring> // std::memcpy
-#include <iostream>
-
-#include <ace/Log_Msg.h> // ACE_HEX_DUMP
-#include <ace/CDR_Stream.h>
-
-// The following two headers define XSD-specific insertion/extraction
-// operations for ACE CDR streams. You can use the content of these
-// headers as a guide to implementing insertion/extraction to/from
-// your own data representation streams:
-//
-// xsd/cxx/tree/ace-cdr-stream-insertion.hxx
-// xsd/cxx/tree/ace-cdr-stream-extraction.hxx
-
-#include "library.hxx"
-
-using std::cerr;
-using std::endl;
-
-int
-main (int argc, char* argv[])
-{
- if (argc != 2)
- {
- cerr << "usage: " << argv[0] << " library.xml" << endl;
- return 1;
- }
-
- try
- {
- using namespace library;
-
- // Read in the file.
- //
- std::auto_ptr<catalog> c (catalog_ (argv[1]));
-
- cerr << *c << endl;
-
- // Save to a CDR stream.
- //
- ACE_OutputCDR ace_ocdr;
- xml_schema::ostream<ACE_OutputCDR> ocdr (ace_ocdr);
-
- ocdr << *c;
-
- // Print the binary representation and at the same time save
- // it into a continuous buffer.
- //
- cerr << endl
- << "binary representation size: " << ace_ocdr.total_length () << endl;
-
- xml_schema::buffer buf (ace_ocdr.total_length ());
- char* data (buf.data ());
-
- for (const ACE_Message_Block* mb = ace_ocdr.begin ();
- mb != 0;
- mb = mb->cont ())
- {
- std::memcpy (data, mb->rd_ptr (), mb->length ());
- data += mb->length ();
-
- ACE_HEX_DUMP ((LM_DEBUG, mb->rd_ptr (), mb->length ()));
- }
-
- // Load from a CDR stream. Note that ACE_InputCDR expects the
- // buffer to be properly aligned. Since our buffer is dynamically
- // allocated, its alignment should be good enough.
- //
- ACE_InputCDR ace_icdr (buf.data (), buf.size ());
- xml_schema::istream<ACE_InputCDR> icdr (ace_icdr);
-
- std::auto_ptr<catalog> copy (new catalog (icdr));
-
- cerr << *copy << endl;
- }
- catch (const xml_schema::exception& e)
- {
- cerr << e << endl;
- return 1;
- }
-
- return 0; // ACE makes our main() an ordinary function.
-}
diff --git a/examples/cxx/tree/binary/cdr/library.xml b/examples/cxx/tree/binary/cdr/library.xml
deleted file mode 100644
index 941c03f..0000000
--- a/examples/cxx/tree/binary/cdr/library.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-
-file : examples/cxx/tree/binary/cdr/library.xml
-copyright : not copyrighted - public domain
-
--->
-
-<lib:catalog xmlns:lib="http://www.codesynthesis.com/library"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.codesynthesis.com/library library.xsd">
-
- <book id="MM" available="false">
- <isbn>0679760806</isbn>
- <title>The Master and Margarita</title>
- <genre>fiction</genre>
-
- <author recommends="WP">
- <name>Mikhail Bulgakov</name>
- <born>1891-05-15</born>
- <died>1940-03-10</died>
- </author>
- </book>
-
-
- <book id="WP">
- <isbn>0679600841</isbn>
- <title>War and Peace</title>
- <genre>history</genre>
-
- <author recommends="CP">
- <name>Leo Tolstoy</name>
- <born>1828-09-09</born>
- <died>1910-11-20</died>
- </author>
- </book>
-
-
- <book id="CP" available="false">
- <isbn>0679420290</isbn>
- <title>Crime and Punishment</title>
- <genre>philosophy</genre>
-
- <author>
- <name>Fyodor Dostoevsky</name>
- <born>1821-11-11</born>
- <died>1881-02-09</died>
- </author>
- </book>
-
-</lib:catalog>
diff --git a/examples/cxx/tree/binary/cdr/library.xsd b/examples/cxx/tree/binary/cdr/library.xsd
deleted file mode 100644
index 5659e1b..0000000
--- a/examples/cxx/tree/binary/cdr/library.xsd
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0"?>
-
-<!--
-
-file : examples/cxx/tree/binary/cdr/library.xsd
-copyright : not copyrighted - public domain
-
--->
-
-<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xse="http://www.codesynthesis.com/xmlns/xml-schema-extension"
- xmlns:lib="http://www.codesynthesis.com/library"
- targetNamespace="http://www.codesynthesis.com/library">
-
- <xsd:simpleType name="isbn">
- <xsd:restriction base="xsd:unsignedInt"/>
- </xsd:simpleType>
-
-
- <xsd:complexType name="title">
- <xsd:simpleContent>
- <xsd:extension base="xsd:string">
- <xsd:attribute name="lang" type="xsd:language"/>
- </xsd:extension>
- </xsd:simpleContent>
- </xsd:complexType>
-
- <xsd:simpleType name="genre">
- <xsd:restriction base="xsd:string">
- <xsd:enumeration value="romance"/>
- <xsd:enumeration value="fiction"/>
- <xsd:enumeration value="horror"/>
- <xsd:enumeration value="history"/>
- <xsd:enumeration value="philosophy"/>
- </xsd:restriction>
- </xsd:simpleType>
-
- <xsd:complexType name="person">
- <xsd:sequence>
- <xsd:element name="name" type="xsd:string"/>
- <xsd:element name="born" type="xsd:date"/>
- <xsd:element name="died" type="xsd:date" minOccurs="0"/>
- </xsd:sequence>
- </xsd:complexType>
-
- <xsd:complexType name="author">
- <xsd:complexContent>
- <xsd:extension base="lib:person">
- <xsd:attribute name="recommends" type="xsd:IDREF" xse:refType="lib:book"/>
- </xsd:extension>
- </xsd:complexContent>
- </xsd:complexType>
-
- <xsd:complexType name="book">
- <xsd:sequence>
- <xsd:element name="isbn" type="lib:isbn"/>
- <xsd:element name="title" type="lib:title"/>
- <xsd:element name="genre" type="lib:genre"/>
- <xsd:element name="author" type="lib:author" maxOccurs="unbounded"/>
- </xsd:sequence>
- <xsd:attribute name="available" type="xsd:boolean" default="true"/>
- <xsd:attribute name="id" type="xsd:ID" use="required"/>
- </xsd:complexType>
-
-
- <xsd:complexType name="catalog">
- <xsd:sequence>
- <xsd:element name="book" type="lib:book" maxOccurs="unbounded"/>
- </xsd:sequence>
- </xsd:complexType>
-
-
- <xsd:element name="catalog" type="lib:catalog"/>
-
-</xsd:schema>
diff --git a/examples/cxx/tree/binary/cdr/makefile b/examples/cxx/tree/binary/cdr/makefile
deleted file mode 100644
index 82bf7b7..0000000
--- a/examples/cxx/tree/binary/cdr/makefile
+++ /dev/null
@@ -1,119 +0,0 @@
-# file : examples/cxx/tree/binary/cdr/makefile
-# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-
-include $(dir $(lastword $(MAKEFILE_LIST)))../../../../../build/bootstrap.make
-
-xsd := library.xsd
-cxx := driver.cxx
-
-obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=.o))
-dep := $(obj:.o=.o.d)
-
-driver := $(out_base)/driver
-install := $(out_base)/.install
-dist := $(out_base)/.dist
-dist-win := $(out_base)/.dist-win
-clean := $(out_base)/.clean
-
-
-# Import.
-#
-$(call import,\
- $(scf_root)/import/libxerces-c/stub.make,\
- l: xerces_c.l,cpp-options: xerces_c.l.cpp-options)
-
-ifeq ($(filter $(MAKECMDGOALS),dist dist-win install),)
-$(call import,\
- $(scf_root)/import/libace/stub.make,\
- l: ace.l,cpp-options: ace.l.cpp-options)
-endif
-
-
-# Build.
-#
-$(driver): $(obj) $(xerces_c.l) $(ace.l)
-
-$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd
-$(obj) $(dep): $(xerces_c.l.cpp-options) $(ace.l.cpp-options)
-
-genf := $(xsd:.xsd=.hxx) $(xsd:.xsd=.ixx) $(xsd:.xsd=.cxx)
-gen := $(addprefix $(out_base)/,$(genf))
-
-$(gen): xsd := $(out_root)/xsd/xsd
-$(gen): xsd_options += --generate-ostream \
---generate-insertion ACE_OutputCDR --generate-extraction ACE_InputCDR
-$(gen): $(out_root)/xsd/xsd
-
-$(call include-dep,$(dep),$(obj),$(gen))
-
-# Convenience alias for default target.
-#
-$(out_base)/: $(driver)
-
-
-# Install & Dist.
-#
-dist-common := $(out_base)/.dist-common
-
-$(install) $(dist) $(dist-win) $(dist-common): path := $(subst $(src_root)/,,$(src_base))
-
-$(install):
- $(call install-data,$(src_base)/README,$(install_doc_dir)/xsd/$(path)/README)
- $(call install-data,$(src_base)/driver.cxx,$(install_doc_dir)/xsd/$(path)/driver.cxx)
- $(call install-data,$(src_base)/library.xsd,$(install_doc_dir)/xsd/$(path)/library.xsd)
- $(call install-data,$(src_base)/library.xml,$(install_doc_dir)/xsd/$(path)/library.xml)
-
-$(dist-common):
- $(call install-data,$(src_base)/driver.cxx,$(dist_prefix)/$(path)/driver.cxx)
- $(call install-data,$(src_base)/library.xsd,$(dist_prefix)/$(path)/library.xsd)
- $(call install-data,$(src_base)/library.xml,$(dist_prefix)/$(path)/library.xml)
-
-$(dist): $(dist-common)
- $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README)
-
-$(dist-win): |$(out_root)/.dist-pre
-$(dist-win): $(dist-common)
- $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README.txt)
- $(call message,,todos $(dist_prefix)/$(path)/README.txt)
- $(call meta-vc8sln,$(src_root)/dist/template-vc8.sln,cdr-vc8.sln)
- $(call meta-vc9sln,$(src_root)/dist/template-vc9.sln,cdr-vc9.sln)
- $(call meta-vc10sln,$(src_root)/dist/template-vc10.sln,cdr-vc10.sln)
- $(call meta-vc11sln,$(src_root)/dist/template-vc11.sln,cdr-vc11.sln)
- $(call meta-vc12sln,$(src_root)/dist/template-vc12.sln,cdr-vc12.sln)
-
-# Clean.
-#
-$(clean): $(driver).o.clean \
- $(addsuffix .cxx.clean,$(obj)) \
- $(addsuffix .cxx.clean,$(dep)) \
- $(addprefix $(out_base)/,$(xsd:.xsd=.cxx.xsd.clean))
-
-# Generated .gitignore.
-#
-ifeq ($(out_base),$(src_base))
-$(gen): | $(out_base)/.gitignore
-$(driver): | $(out_base)/.gitignore
-
-$(out_base)/.gitignore: files := driver $(genf)
-$(clean): $(out_base)/.gitignore.clean
-
-$(call include,$(bld_root)/git/gitignore.make)
-endif
-
-# How to.
-#
-$(call include,$(bld_root)/cxx/o-e.make)
-$(call include,$(bld_root)/cxx/cxx-o.make)
-$(call include,$(bld_root)/cxx/cxx-d.make)
-$(call include,$(scf_root)/xsd/tree/xsd-cxx.make)
-
-$(call include,$(bld_root)/install.make)
-$(call include,$(bld_root)/meta/vc8sln.make)
-$(call include,$(bld_root)/meta/vc9sln.make)
-$(call include,$(bld_root)/meta/vc10sln.make)
-$(call include,$(bld_root)/meta/vc11sln.make)
-$(call include,$(bld_root)/meta/vc12sln.make)
-
-# Dependencies.
-#
-$(call import,$(src_root)/xsd/makefile)