diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-18 18:48:46 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-02-25 13:45:48 +0300 |
commit | 5e527213a2430bb3018e5eebd909aef294edf9b5 (patch) | |
tree | 94de33c82080b53d9a9e300170f6d221d89078f4 /xsd-tests/cxx/tree/prefix | |
parent | 7420f85ea19b0562ffdd8123442f32bc8bac1267 (diff) |
Switch to build2
Diffstat (limited to 'xsd-tests/cxx/tree/prefix')
-rw-r--r-- | xsd-tests/cxx/tree/prefix/.gitignore | 2 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/bar.xsd | 34 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/buildfile | 31 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/driver.cxx | 34 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/foo.xsd | 16 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/output | 18 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/test.xml | 19 | ||||
-rw-r--r-- | xsd-tests/cxx/tree/prefix/test.xsd | 40 |
8 files changed, 194 insertions, 0 deletions
diff --git a/xsd-tests/cxx/tree/prefix/.gitignore b/xsd-tests/cxx/tree/prefix/.gitignore new file mode 100644 index 0000000..2457930 --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/.gitignore @@ -0,0 +1,2 @@ +bar.?xx +foo.?xx diff --git a/xsd-tests/cxx/tree/prefix/bar.xsd b/xsd-tests/cxx/tree/prefix/bar.xsd new file mode 100644 index 0000000..4e20902 --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/bar.xsd @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:f="foo" + xmlns:b="bar" + targetNamespace="bar" + attributeFormDefault="qualified"> + + <import namespace="foo" schemaLocation="foo.xsd"/> + + <attribute name="abar" type="int"/> + + <complexType name="derived1"> + <complexContent> + <extension base="f:base"> + <sequence> + <element name="y" type="int"/> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="derived2"> + <complexContent> + <extension base="f:base"> + <sequence> + <element name="z" type="int"/> + </sequence> + </extension> + </complexContent> + </complexType> + + <element name="derived" type="b:derived1" substitutionGroup="f:base"/> + +</schema> diff --git a/xsd-tests/cxx/tree/prefix/buildfile b/xsd-tests/cxx/tree/prefix/buildfile new file mode 100644 index 0000000..7ac81de --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/buildfile @@ -0,0 +1,31 @@ +# file : cxx/tree/prefix/buildfile +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +import libs = libxsd%lib{xsd} +import libs += libxerces-c%lib{xerces-c} + +fs = foo bar test + +exe{driver}: {hxx cxx}{* -{$fs}} {hxx ixx cxx}{$fs} $libs + +exe{driver}: xml{test}: test.input = true +exe{driver}: file{output}: test.stdout = true + +for f: $fs +{ + <{hxx ixx cxx}{$f}>: xsd{$f} $xsd + {{ + diag xsd ($<[0]) # @@ TMP + + $xsd cxx-tree --std c++11 \ + --generate-inline \ + --generate-serialization \ + --generate-polymorphic \ + --polymorphic-type 'foo#base' \ + --root-element root \ + --output-dir $out_base \ + $path($<[0]) + }} +} + +cxx.poptions =+ "-I$out_base" diff --git a/xsd-tests/cxx/tree/prefix/driver.cxx b/xsd-tests/cxx/tree/prefix/driver.cxx new file mode 100644 index 0000000..bd2e46d --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/driver.cxx @@ -0,0 +1,34 @@ +// file : cxx/tree/prefix/driver.cxx +// license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +// Test automatic prefix assignment. +// + +#include <memory> // std::auto_ptr/unique_ptr +#include <iostream> + +#include "test.hxx" + +using namespace std; +using namespace test; + +int +main (int argc, char* argv[]) +{ + if (argc != 2) + { + cerr << "usage: " << argv[0] << " test.xml" << endl; + return 1; + } + + try + { + XSD_AUTO_PTR<type> r (root (argv[1])); + root (std::cout, *r); + } + catch (xml_schema::exception const& e) + { + cerr << e << endl; + return 1; + } +} diff --git a/xsd-tests/cxx/tree/prefix/foo.xsd b/xsd-tests/cxx/tree/prefix/foo.xsd new file mode 100644 index 0000000..97a35cf --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/foo.xsd @@ -0,0 +1,16 @@ +<?xml version="1.0"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:f="foo" + targetNamespace="foo"> + + <element name="efoo" type="int"/> + + <complexType name="base"> + <sequence> + <element name="x" type="int"/> + </sequence> + </complexType> + + <element name="base" type="f:base"/> + +</schema> diff --git a/xsd-tests/cxx/tree/prefix/output b/xsd-tests/cxx/tree/prefix/output new file mode 100644 index 0000000..9801a23 --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/output @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no" ?> +<p1:root xmlns:p1="test"> + <a xmlns:p3="bar" p3:abar="456" xmlns:p2="foo"> + <p2:efoo>123</p2:efoo> + </a> + <b xmlns:p2="bar"> + <p2:derived> + <x>1</x> + <y>2</y> + </p2:derived> + </b> + <c xmlns:p2="foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <p2:base xmlns:p3="bar" xsi:type="p3:derived2"> + <x>1</x> + <z>2</z> + </p2:base> + </c> +</p1:root> diff --git a/xsd-tests/cxx/tree/prefix/test.xml b/xsd-tests/cxx/tree/prefix/test.xml new file mode 100644 index 0000000..b6d0dd6 --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/test.xml @@ -0,0 +1,19 @@ +<t:root xmlns:t="test" + xmlns:f="foo" + xmlns:b="bar" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="test test.xsd"> + + <a b:abar="456"> + <f:efoo>123</f:efoo> + </a> + + <b> + <b:derived><x>1</x><y>2</y></b:derived> + </b> + + <c> + <f:base xsi:type="b:derived2"><x>1</x><z>2</z></f:base> + </c> + +</t:root> diff --git a/xsd-tests/cxx/tree/prefix/test.xsd b/xsd-tests/cxx/tree/prefix/test.xsd new file mode 100644 index 0000000..421fdc0 --- /dev/null +++ b/xsd-tests/cxx/tree/prefix/test.xsd @@ -0,0 +1,40 @@ +<?xml version="1.0"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:f="foo" + xmlns:b="bar" + xmlns:t="test" + targetNamespace="test"> + + <import namespace="foo" schemaLocation="foo.xsd"/> + <import namespace="bar" schemaLocation="bar.xsd"/> + + <complexType name="a"> + <sequence> + <element ref="f:efoo"/> + </sequence> + <attribute ref="b:abar"/> + </complexType> + + <complexType name="b"> + <sequence> + <element ref="f:base"/> + </sequence> + </complexType> + + <complexType name="c"> + <sequence> + <element ref="f:base"/> + </sequence> + </complexType> + + <complexType name="type"> + <sequence> + <element name="a" type="t:a"/> + <element name="b" type="t:b"/> + <element name="c" type="t:c"/> + </sequence> + </complexType> + + <element name="root" type="t:type"/> + +</schema> |