diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-02-11 17:01:02 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-02-11 17:01:02 +0200 |
commit | d4a78b31a1a045471c2fe12d2618d9d5edf78fb2 (patch) | |
tree | 090738555bb18f9a22ad7916f34bcd50273e9cb2 /tests/cxx/parser/polymorphism/recursive/test.xsd | |
parent | 7c064687415c895334650321bd5bc34453b0ce38 (diff) |
Fix recursive polymorphic parsing in C++/Parser
New test: cxx/parser/polymorphism/recursive.
Diffstat (limited to 'tests/cxx/parser/polymorphism/recursive/test.xsd')
-rw-r--r-- | tests/cxx/parser/polymorphism/recursive/test.xsd | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/cxx/parser/polymorphism/recursive/test.xsd b/tests/cxx/parser/polymorphism/recursive/test.xsd new file mode 100644 index 0000000..affcc8a --- /dev/null +++ b/tests/cxx/parser/polymorphism/recursive/test.xsd @@ -0,0 +1,53 @@ +<?xml version="1.0"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:t="test" + targetNamespace="test" + elementFormDefault="qualified"> + + <element name="root" type="t:root"/> + <complexType name="root"> + <sequence> + <element ref="t:expression" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + </complexType> + + <element name="expression" type="t:expression" abstract="true"/> + <complexType name="expression" abstract="true"/> + + <element name="recursive" type="t:recursive" substitutionGroup="t:expression"/> + <complexType name="recursive"> + <complexContent> + <extension base="t:expression"> + <sequence minOccurs="0" maxOccurs="unbounded"> + <element ref="t:expression"/> + </sequence> + </extension> + </complexContent> + </complexType> + + <element name="value" type="t:value" abstract="true" substitutionGroup="t:expression"/> + <complexType name="value" abstract="true"> + <complexContent> + <extension base="t:expression"> + <sequence> + <element name="constant" type="int"/> + </sequence> + </extension> + </complexContent> + </complexType> + + <element name="value-a" type="t:value-a" substitutionGroup="t:expression"/> + <complexType name="value-a"> + <complexContent> + <extension base="t:value"/> + </complexContent> + </complexType> + + <element name="value-b" type="t:value-b" substitutionGroup="t:expression"/> + <complexType name="value-b"> + <complexContent> + <extension base="t:value"/> + </complexContent> + </complexType> + +</schema> |