aboutsummaryrefslogtreecommitdiff
path: root/tests/cxx/hybrid/recursive/test.xsd
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-03-11 09:30:41 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-03-11 09:30:41 +0200
commit9db750f407ceeb5c1fab99414b074d289bfda179 (patch)
treeeb1a5e52ebf84d79d378d5ab2ae56372028776e0 /tests/cxx/hybrid/recursive/test.xsd
parentbc628cff98a1d90d4ee293f22979db56b4ed0695 (diff)
Add support for parsing/serialization of recursive types
tests/cxx/hybrid/recursive/: new test
Diffstat (limited to 'tests/cxx/hybrid/recursive/test.xsd')
-rw-r--r--tests/cxx/hybrid/recursive/test.xsd115
1 files changed, 115 insertions, 0 deletions
diff --git a/tests/cxx/hybrid/recursive/test.xsd b/tests/cxx/hybrid/recursive/test.xsd
new file mode 100644
index 0000000..578bf8f
--- /dev/null
+++ b/tests/cxx/hybrid/recursive/test.xsd
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test">
+
+ <element name="root" type="t:type"/>
+
+ <complexType name="type">
+ <sequence>
+ <element name="test1" type="t:test1" maxOccurs="unbounded"/>
+ <element name="test2" type="t:test2a" maxOccurs="unbounded"/>
+ <element name="test3" type="t:test3b" maxOccurs="unbounded"/>
+ <element name="test4" type="t:test4b" maxOccurs="unbounded"/>
+ <element name="test5" type="t:test5b" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+
+ <!-- test 1: single type recursion -->
+
+ <complexType name="test1">
+ <choice>
+ <element name="a" type="int"/>
+ <element name="b" type="t:test1"/>
+ </choice>
+ </complexType>
+
+
+ <!-- test 2: muti-type recursion -->
+
+ <complexType name="test2a">
+ <sequence>
+ <element name="b" type="t:test2b" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="test2b">
+ <sequence>
+ <element name="c" type="t:test2c" minOccurs="0" maxOccurs="unbounded"/>
+ <element name="d" type="t:test2d"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="test2c">
+ <sequence>
+ <element name="a" type="t:test2a" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="test2d">
+ <sequence>
+ <element name="x" type="int"/>
+ </sequence>
+ </complexType>
+
+
+ <!-- test 3: single type recursion with a non-recursive base -->
+
+ <complexType name="test3a">
+ <sequence>
+ <element name="a" type="int"/>
+ <element name="b" type="string"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="test3b">
+ <complexContent>
+ <extension base="t:test3a">
+ <sequence>
+ <element name="c" type="string"/>
+ <element name="d" type="t:test3b" minOccurs="0"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+
+ <!-- test 4: single type recursion with a non-recursive derived -->
+
+ <complexType name="test4a">
+ <choice>
+ <element name="a" type="int"/>
+ <element name="b" type="t:test4a"/>
+ </choice>
+ </complexType>
+
+ <complexType name="test4b">
+ <complexContent>
+ <extension base="t:test4a">
+ <sequence>
+ <element name="c" type="string"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+
+ <!-- test 5: recursion via derivation -->
+
+ <complexType name="test5a">
+ <choice>
+ <element name="a" type="int"/>
+ <element name="b" type="t:test5b"/>
+ </choice>
+ </complexType>
+
+ <complexType name="test5b">
+ <complexContent>
+ <extension base="t:test5a">
+ <sequence>
+ <element name="c" type="string"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+
+</schema>