blob: 578bf8f7b586e6f0eff1e4f2e09b0491610b2ca6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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>
|