diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2020-12-15 22:23:46 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2021-02-25 13:39:56 +0300 |
commit | 949a9f572341b6cd07690f0b78b1b1941d320055 (patch) | |
tree | a4b9a32fb5a4cd6a46a17718cc854697df49c920 /tests | |
parent | 061b59ec50c40e8757c5e9237f45a2c7ade36d62 (diff) |
Switch to build2
Diffstat (limited to 'tests')
52 files changed, 1344 insertions, 1462 deletions
diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 0000000..2e508a9 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1,3 @@ +driver +test/ +test-*/ diff --git a/tests/build/.gitignore b/tests/build/.gitignore new file mode 100644 index 0000000..4a730a3 --- /dev/null +++ b/tests/build/.gitignore @@ -0,0 +1,3 @@ +config.build +root/ +bootstrap/ diff --git a/tests/build/bootstrap.build b/tests/build/bootstrap.build new file mode 100644 index 0000000..33c8d02 --- /dev/null +++ b/tests/build/bootstrap.build @@ -0,0 +1,8 @@ +# file : tests/build/bootstrap.build +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +project = # Unnamed subproject. + +using config +using dist +using test diff --git a/tests/build/root.build b/tests/build/root.build new file mode 100644 index 0000000..c062795 --- /dev/null +++ b/tests/build/root.build @@ -0,0 +1,23 @@ +# file : tests/build/root.build +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +cxx.std = latest + +using cxx + +hxx{*}: extension = hxx +cxx{*}: extension = cxx + +if ($cxx.target.system == 'win32-msvc') + cxx.poptions += -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS + +if ($cxx.class == 'msvc') + cxx.coptions += /wd4251 /wd4275 /wd4800 + +# Every exe{} in this subproject is by default a test. +# +exe{*}: test = true + +# Specify the test target for cross-testing. +# +test.target = $cxx.target diff --git a/tests/buildfile b/tests/buildfile new file mode 100644 index 0000000..97a1f9c --- /dev/null +++ b/tests/buildfile @@ -0,0 +1,4 @@ +# file : tests/buildfile +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +./: {*/ -build/} diff --git a/tests/dump/makefile b/tests/dump/makefile deleted file mode 100644 index 18f18de..0000000 --- a/tests/dump/makefile +++ /dev/null @@ -1,54 +0,0 @@ -# file : tests/dump/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make - -cxx_tun := driver.cxx -cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o)) -cxx_od := $(cxx_obj:.o=.o.d) - -xsd-fe.l := $(out_root)/xsd-frontend/xsd-frontend.l -xsd-fe.l.cpp-options := $(out_root)/xsd-frontend/xsd-frontend.l.cpp-options - -driver := $(out_base)/driver -clean := $(out_base)/.clean - -# Build. -# -$(driver): $(cxx_obj) $(xsd-fe.l) - -$(cxx_obj) $(cxx_od): $(xsd-fe.l.cpp-options) - -$(call include-dep,$(cxx_od)) - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Clean. -# -$(clean): $(driver).o.clean \ - $(addsuffix .cxx.clean,$(cxx_obj)) \ - $(addsuffix .cxx.clean,$(cxx_od)) - -# Generated .gitignore. -# -ifeq ($(out_base),$(src_base)) -$(driver): | $(out_base)/.gitignore - -$(out_base)/.gitignore: files := driver -$(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) - - -# Dependencies. -# -$(call import,$(src_root)/xsd-frontend/makefile) diff --git a/tests/makefile b/tests/makefile deleted file mode 100644 index 103accf..0000000 --- a/tests/makefile +++ /dev/null @@ -1,15 +0,0 @@ -# file : tests/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make - -default := $(out_base)/ -test := $(out_base)/.test -clean := $(out_base)/.clean - -$(default): $(out_base)/dump/ $(out_base)/schema/ -$(test): $(out_base)/schema/.test -$(clean): $(out_base)/dump/.clean $(out_base)/schema/.clean - -$(call import,$(src_base)/dump/makefile) -$(call import,$(src_base)/schema/makefile) diff --git a/tests/schema/annotation.testscript b/tests/schema/annotation.testscript new file mode 100644 index 0000000..3f8a96b --- /dev/null +++ b/tests/schema/annotation.testscript @@ -0,0 +1,298 @@ +# file : tests/schema/annotation.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: basic +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <annotation> + <documentation>schema documentation</documentation> + </annotation> + + <simpleType name="list"> + <annotation> + <documentation>list type documentation</documentation> + </annotation> + <list itemType="string"/> + </simpleType> + + <simpleType name="union"> + <annotation> + <documentation>union type documentation</documentation> + </annotation> + <union memberTypes="int string"/> + </simpleType> + + <simpleType name="enum"> + <annotation> + <documentation>enumeration type documentation</documentation> + </annotation> + <restriction base="string"> + <enumeration value="male"> + <annotation> + <documentation>enumerator documentation (male)</documentation> + </annotation> + </enumeration> + <enumeration value="female"> + <annotation> + <documentation>enumerator documentation (female)</documentation> + </annotation> + </enumeration> + </restriction> + </simpleType> + + <complexType name="type"> + <annotation> + <documentation>complex type documentation</documentation> + </annotation> + <sequence> + <element name="efoo" type="string"> + <annotation> + <documentation>local element efoo documentation</documentation> + </annotation> + </element> + <element name="ebar"> + <annotation> + <documentation>local element ebar documentation</documentation> + </annotation> + <complexType> + <sequence> + <element name="efoo" type="string"> + <annotation> + <documentation>nested local element efoo documentation</documentation> + </annotation> + </element> + </sequence> + <attribute name="afoo" type="string"> + <annotation> + <documentation>nested local attribute afoo documentation</documentation> + </annotation> + </attribute> + </complexType> + </element> + <element ref="t:ebaz"> + <annotation> + <documentation>local element ebaz documentation</documentation> + </annotation> + </element> + <any namespace="##other"> + <annotation> + <documentation>any documentation</documentation> + </annotation> + </any> + </sequence> + <attribute name="afoo" type="string"> + <annotation> + <documentation>local attribute afoo documentation</documentation> + </annotation> + </attribute> + <attribute name="abar"> + <annotation> + <documentation>local attribute abar documentation</documentation> + </annotation> + <simpleType> + <annotation> + <documentation>list type documentation</documentation> + </annotation> + <list itemType="string"/> + </simpleType> + </attribute> + <attribute ref="t:abaz"> + <annotation> + <documentation>local attribute abaz documentation</documentation> + </annotation> + </attribute> + <anyAttribute namespace="##other"> + <annotation> + <documentation>anyAttribute documentation</documentation> + </annotation> + </anyAttribute> + </complexType> + + <element name="ebaz" type="string"> + <annotation> + <documentation>global element documentation</documentation> + </annotation> + </element> + + <attribute name="abaz" type="string"> + <annotation> + <documentation>global attribute documentation</documentation> + </annotation> + </attribute> + + </schema> + EOI + + $* test.xsd >>EOO + <schema documentation> + primary + { + namespace test + { + <list type documentation> + list list http://www.w3.org/2001/XMLSchema#string + <union type documentation> + union union http://www.w3.org/2001/XMLSchema#int http://www.w3.org/2001/XMLSchema#string + <enumeration type documentation> + enumeration enum: http://www.w3.org/2001/XMLSchema#string + { + <enumerator documentation (male)> + enumerator male + <enumerator documentation (female)> + enumerator female + } + <complex type documentation> + complex type + { + <local element efoo documentation> + element efoo + <local element ebar documentation> + element ebar + <local element ebaz documentation> + element ebaz + <any documentation> + any 'any #0' + <local attribute afoo documentation> + optional attribute afoo http://www.w3.org/2001/XMLSchema#string + <local attribute abar documentation> + optional attribute abar + { + <list type documentation> + list <anonymous> http://www.w3.org/2001/XMLSchema#string + } + <local attribute abaz documentation> + optional attribute abaz http://www.w3.org/2001/XMLSchema#string + <anyAttribute documentation> + any-attribute 'any-attribute #0' + [1, 1] sequence + { + [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string + [1, 1] element ebar + { + complex <anonymous> + { + <nested local element efoo documentation> + element efoo + <nested local attribute afoo documentation> + optional attribute afoo http://www.w3.org/2001/XMLSchema#string + [1, 1] sequence + { + [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string + } + } + } + [1, 1] element ebaz http://www.w3.org/2001/XMLSchema#string + [1, 1] any 'any #0' + } + } + <global element documentation> + element ebaz http://www.w3.org/2001/XMLSchema#string + <global attribute documentation> + attribute abaz http://www.w3.org/2001/XMLSchema#string + } + } + EOO +} + +: refs +: +{ + cat <<EOI >=refs.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Test various ref constructs. --> + + <complexType name="type"> + <sequence> + <element ref="t:ebar"/> + <group ref="t:eg"/> + </sequence> + <attribute ref="t:abar"/> + <attributeGroup ref="t:ag"/> + </complexType> + + <group name="eg"> + <choice> + <element name="efoo" type="string"> + <annotation> + <documentation>group element efoo documentation</documentation> + </annotation> + </element> + <element ref="t:ebar"/> + </choice> + </group> + + <element name="ebar" type="string"> + <annotation> + <documentation>global element ebar documentation</documentation> + </annotation> + </element> + + <attributeGroup name="ag"> + <attribute name="afoo" type="string"> + <annotation> + <documentation>group attribute afoo documentation</documentation> + </annotation> + </attribute> + <attribute ref="t:abaz"/> + </attributeGroup> + + <attribute name="abar" type="string"> + <annotation> + <documentation>global attribute abar documentation</documentation> + </annotation> + </attribute> + + <attribute name="abaz" type="string"> + <annotation> + <documentation>global attribute abaz documentation</documentation> + </annotation> + </attribute> + + </schema> + EOI + + $* refs.xsd >>EOO + primary + { + namespace test + { + complex type + { + <global element ebar documentation> + element ebar + <group element efoo documentation> + element efoo + <global element ebar documentation> + element ebar + <global attribute abar documentation> + optional attribute abar http://www.w3.org/2001/XMLSchema#string + <group attribute afoo documentation> + optional attribute afoo http://www.w3.org/2001/XMLSchema#string + <global attribute abaz documentation> + optional attribute abaz http://www.w3.org/2001/XMLSchema#string + [1, 1] sequence + { + [1, 1] element ebar http://www.w3.org/2001/XMLSchema#string + [1, 1] choice + { + [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string + [1, 1] element ebar http://www.w3.org/2001/XMLSchema#string + } + } + } + <global element ebar documentation> + element ebar http://www.w3.org/2001/XMLSchema#string + <global attribute abar documentation> + attribute abar http://www.w3.org/2001/XMLSchema#string + <global attribute abaz documentation> + attribute abaz http://www.w3.org/2001/XMLSchema#string + } + } + EOO +} diff --git a/tests/schema/annotation/makefile b/tests/schema/annotation/makefile deleted file mode 100644 index 8c3d805..0000000 --- a/tests/schema/annotation/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/annotation/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/annotation/test-000.std b/tests/schema/annotation/test-000.std deleted file mode 100644 index 15f3e89..0000000 --- a/tests/schema/annotation/test-000.std +++ /dev/null @@ -1,67 +0,0 @@ -<schema documentation> -primary -{ - namespace test - { - <list type documentation> - list list http://www.w3.org/2001/XMLSchema#string - <union type documentation> - union union http://www.w3.org/2001/XMLSchema#int http://www.w3.org/2001/XMLSchema#string - <enumeration type documentation> - enumeration enum: http://www.w3.org/2001/XMLSchema#string - { - <enumerator documentation (male)> - enumerator male - <enumerator documentation (female)> - enumerator female - } - <complex type documentation> - complex type - { - <local element efoo documentation> - element efoo - <local element ebar documentation> - element ebar - <local element ebaz documentation> - element ebaz - <any documentation> - any 'any #0' - <local attribute afoo documentation> - optional attribute afoo http://www.w3.org/2001/XMLSchema#string - <local attribute abar documentation> - optional attribute abar - { - <list type documentation> - list <anonymous> http://www.w3.org/2001/XMLSchema#string - } - <local attribute abaz documentation> - optional attribute abaz http://www.w3.org/2001/XMLSchema#string - <anyAttribute documentation> - any-attribute 'any-attribute #0' - [1, 1] sequence - { - [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string - [1, 1] element ebar - { - complex <anonymous> - { - <nested local element efoo documentation> - element efoo - <nested local attribute afoo documentation> - optional attribute afoo http://www.w3.org/2001/XMLSchema#string - [1, 1] sequence - { - [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string - } - } - } - [1, 1] element ebaz http://www.w3.org/2001/XMLSchema#string - [1, 1] any 'any #0' - } - } - <global element documentation> - element ebaz http://www.w3.org/2001/XMLSchema#string - <global attribute documentation> - attribute abaz http://www.w3.org/2001/XMLSchema#string - } -} diff --git a/tests/schema/annotation/test-000.xsd b/tests/schema/annotation/test-000.xsd deleted file mode 100644 index f768b45..0000000 --- a/tests/schema/annotation/test-000.xsd +++ /dev/null @@ -1,120 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <annotation> - <documentation>schema documentation</documentation> - </annotation> - - <simpleType name="list"> - <annotation> - <documentation>list type documentation</documentation> - </annotation> - <list itemType="string"/> - </simpleType> - - <simpleType name="union"> - <annotation> - <documentation>union type documentation</documentation> - </annotation> - <union memberTypes="int string"/> - </simpleType> - - <simpleType name="enum"> - <annotation> - <documentation>enumeration type documentation</documentation> - </annotation> - <restriction base="string"> - <enumeration value="male"> - <annotation> - <documentation>enumerator documentation (male)</documentation> - </annotation> - </enumeration> - <enumeration value="female"> - <annotation> - <documentation>enumerator documentation (female)</documentation> - </annotation> - </enumeration> - </restriction> - </simpleType> - - <complexType name="type"> - <annotation> - <documentation>complex type documentation</documentation> - </annotation> - <sequence> - <element name="efoo" type="string"> - <annotation> - <documentation>local element efoo documentation</documentation> - </annotation> - </element> - <element name="ebar"> - <annotation> - <documentation>local element ebar documentation</documentation> - </annotation> - <complexType> - <sequence> - <element name="efoo" type="string"> - <annotation> - <documentation>nested local element efoo documentation</documentation> - </annotation> - </element> - </sequence> - <attribute name="afoo" type="string"> - <annotation> - <documentation>nested local attribute afoo documentation</documentation> - </annotation> - </attribute> - </complexType> - </element> - <element ref="t:ebaz"> - <annotation> - <documentation>local element ebaz documentation</documentation> - </annotation> - </element> - <any namespace="##other"> - <annotation> - <documentation>any documentation</documentation> - </annotation> - </any> - </sequence> - <attribute name="afoo" type="string"> - <annotation> - <documentation>local attribute afoo documentation</documentation> - </annotation> - </attribute> - <attribute name="abar"> - <annotation> - <documentation>local attribute abar documentation</documentation> - </annotation> - <simpleType> - <annotation> - <documentation>list type documentation</documentation> - </annotation> - <list itemType="string"/> - </simpleType> - </attribute> - <attribute ref="t:abaz"> - <annotation> - <documentation>local attribute abaz documentation</documentation> - </annotation> - </attribute> - <anyAttribute namespace="##other"> - <annotation> - <documentation>anyAttribute documentation</documentation> - </annotation> - </anyAttribute> - </complexType> - - <element name="ebaz" type="string"> - <annotation> - <documentation>global element documentation</documentation> - </annotation> - </element> - - <attribute name="abaz" type="string"> - <annotation> - <documentation>global attribute documentation</documentation> - </annotation> - </attribute> - -</schema> diff --git a/tests/schema/annotation/test-001.std b/tests/schema/annotation/test-001.std deleted file mode 100644 index 9e2c99a..0000000 --- a/tests/schema/annotation/test-001.std +++ /dev/null @@ -1,36 +0,0 @@ -primary -{ - namespace test - { - complex type - { - <global element ebar documentation> - element ebar - <group element efoo documentation> - element efoo - <global element ebar documentation> - element ebar - <global attribute abar documentation> - optional attribute abar http://www.w3.org/2001/XMLSchema#string - <group attribute afoo documentation> - optional attribute afoo http://www.w3.org/2001/XMLSchema#string - <global attribute abaz documentation> - optional attribute abaz http://www.w3.org/2001/XMLSchema#string - [1, 1] sequence - { - [1, 1] element ebar http://www.w3.org/2001/XMLSchema#string - [1, 1] choice - { - [1, 1] element efoo http://www.w3.org/2001/XMLSchema#string - [1, 1] element ebar http://www.w3.org/2001/XMLSchema#string - } - } - } - <global element ebar documentation> - element ebar http://www.w3.org/2001/XMLSchema#string - <global attribute abar documentation> - attribute abar http://www.w3.org/2001/XMLSchema#string - <global attribute abaz documentation> - attribute abaz http://www.w3.org/2001/XMLSchema#string - } -} diff --git a/tests/schema/annotation/test-001.xsd b/tests/schema/annotation/test-001.xsd deleted file mode 100644 index 286f63a..0000000 --- a/tests/schema/annotation/test-001.xsd +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Test various ref constructs. --> - - <complexType name="type"> - <sequence> - <element ref="t:ebar"/> - <group ref="t:eg"/> - </sequence> - <attribute ref="t:abar"/> - <attributeGroup ref="t:ag"/> - </complexType> - - <group name="eg"> - <choice> - <element name="efoo" type="string"> - <annotation> - <documentation>group element efoo documentation</documentation> - </annotation> - </element> - <element ref="t:ebar"/> - </choice> - </group> - - <element name="ebar" type="string"> - <annotation> - <documentation>global element ebar documentation</documentation> - </annotation> - </element> - - <attributeGroup name="ag"> - <attribute name="afoo" type="string"> - <annotation> - <documentation>group attribute afoo documentation</documentation> - </annotation> - </attribute> - <attribute ref="t:abaz"/> - </attributeGroup> - - <attribute name="abar" type="string"> - <annotation> - <documentation>global attribute abar documentation</documentation> - </annotation> - </attribute> - - <attribute name="abaz" type="string"> - <annotation> - <documentation>global attribute abaz documentation</documentation> - </annotation> - </attribute> - -</schema> diff --git a/tests/schema/anonymous.testscript b/tests/schema/anonymous.testscript new file mode 100644 index 0000000..2dbc184 --- /dev/null +++ b/tests/schema/anonymous.testscript @@ -0,0 +1,181 @@ +# file : tests/schema/anonymous.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +test.options += --anonymous + +: basic +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <simpleType name="named"> + <list itemType="string"/> + </simpleType> + + <simpleType name="anon_item"> + <restriction base="string"> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + <simpleType name="anon"> + <list> + <simpleType> + <restriction base="string"> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + </list> + </simpleType> + + <simpleType name="anon_nested"> + <list> + <simpleType> + <restriction> + <simpleType> + <restriction base="string"> + <maxLength value="20"/> + </restriction> + </simpleType> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + </list> + </simpleType> + + </schema> + EOI + + $* test.xsd >>EOO + anonymous: test anon_item anon + anonymous: test anon_nested_item anon_nested + anonymous: test anon_nested_item_base anon_nested_item + primary + { + namespace test + { + list named http://www.w3.org/2001/XMLSchema#string + enumeration anon_item: http://www.w3.org/2001/XMLSchema#string + { + enumerator male + enumerator female + } + list anon test#anon_item1 + list anon_nested test#anon_nested_item + enumeration anon_item1: http://www.w3.org/2001/XMLSchema#string + { + enumerator male + enumerator female + } + enumeration anon_nested_item: test#anon_nested_item_base + { + enumerator male + enumerator female + } + complex anon_nested_item_base: http://www.w3.org/2001/XMLSchema#string + { + } + } + } + EOO +} + +: complex +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <simpleType name="named"> + <restriction base="string"> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + <simpleType name="anon_base"> + <restriction base="string"> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + <simpleType name="anon"> + <restriction> + <simpleType> + <restriction base="string"> + <maxLength value="20"/> + </restriction> + </simpleType> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + <simpleType name="anon_nested"> + <restriction> + <simpleType> + <restriction> + <simpleType> + <restriction base="string"> + <maxLength value="40"/> + </restriction> + </simpleType> + <maxLength value="20"/> + </restriction> + </simpleType> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + </schema> + EOI + + $* test.xsd >>EOO + anonymous: test anon_base anon + anonymous: test anon_nested_base anon_nested + anonymous: test anon_nested_base_base anon_nested_base + primary + { + namespace test + { + enumeration named: http://www.w3.org/2001/XMLSchema#string + { + enumerator male + enumerator female + } + enumeration anon_base: http://www.w3.org/2001/XMLSchema#string + { + enumerator male + enumerator female + } + enumeration anon: test#anon_base1 + { + enumerator male + enumerator female + } + enumeration anon_nested: test#anon_nested_base + { + enumerator male + enumerator female + } + complex anon_base1: http://www.w3.org/2001/XMLSchema#string + { + } + complex anon_nested_base: test#anon_nested_base_base + { + } + complex anon_nested_base_base: http://www.w3.org/2001/XMLSchema#string + { + } + } + } + EOO +} diff --git a/tests/schema/anonymous/makefile b/tests/schema/anonymous/makefile deleted file mode 100644 index 345bf11..0000000 --- a/tests/schema/anonymous/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/annotation/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) --anonymous $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/anonymous/test-000.std b/tests/schema/anonymous/test-000.std deleted file mode 100644 index 1f33cb0..0000000 --- a/tests/schema/anonymous/test-000.std +++ /dev/null @@ -1,30 +0,0 @@ -anonymous: test anon_item anon -anonymous: test anon_nested_item anon_nested -anonymous: test anon_nested_item_base anon_nested_item -primary -{ - namespace test - { - list named http://www.w3.org/2001/XMLSchema#string - enumeration anon_item: http://www.w3.org/2001/XMLSchema#string - { - enumerator male - enumerator female - } - list anon test#anon_item1 - list anon_nested test#anon_nested_item - enumeration anon_item1: http://www.w3.org/2001/XMLSchema#string - { - enumerator male - enumerator female - } - enumeration anon_nested_item: test#anon_nested_item_base - { - enumerator male - enumerator female - } - complex anon_nested_item_base: http://www.w3.org/2001/XMLSchema#string - { - } - } -} diff --git a/tests/schema/anonymous/test-000.xsd b/tests/schema/anonymous/test-000.xsd deleted file mode 100644 index ece8f4a..0000000 --- a/tests/schema/anonymous/test-000.xsd +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <simpleType name="named"> - <list itemType="string"/> - </simpleType> - - <simpleType name="anon_item"> - <restriction base="string"> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - - <simpleType name="anon"> - <list> - <simpleType> - <restriction base="string"> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - </list> - </simpleType> - - <simpleType name="anon_nested"> - <list> - <simpleType> - <restriction> - <simpleType> - <restriction base="string"> - <maxLength value="20"/> - </restriction> - </simpleType> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - </list> - </simpleType> - -</schema> diff --git a/tests/schema/anonymous/test-001.std b/tests/schema/anonymous/test-001.std deleted file mode 100644 index cc3f2d1..0000000 --- a/tests/schema/anonymous/test-001.std +++ /dev/null @@ -1,38 +0,0 @@ -anonymous: test anon_base anon -anonymous: test anon_nested_base anon_nested -anonymous: test anon_nested_base_base anon_nested_base -primary -{ - namespace test - { - enumeration named: http://www.w3.org/2001/XMLSchema#string - { - enumerator male - enumerator female - } - enumeration anon_base: http://www.w3.org/2001/XMLSchema#string - { - enumerator male - enumerator female - } - enumeration anon: test#anon_base1 - { - enumerator male - enumerator female - } - enumeration anon_nested: test#anon_nested_base - { - enumerator male - enumerator female - } - complex anon_base1: http://www.w3.org/2001/XMLSchema#string - { - } - complex anon_nested_base: test#anon_nested_base_base - { - } - complex anon_nested_base_base: http://www.w3.org/2001/XMLSchema#string - { - } - } -} diff --git a/tests/schema/anonymous/test-001.xsd b/tests/schema/anonymous/test-001.xsd deleted file mode 100644 index 4a8414f..0000000 --- a/tests/schema/anonymous/test-001.xsd +++ /dev/null @@ -1,47 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <simpleType name="named"> - <restriction base="string"> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - - <simpleType name="anon_base"> - <restriction base="string"> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - - <simpleType name="anon"> - <restriction> - <simpleType> - <restriction base="string"> - <maxLength value="20"/> - </restriction> - </simpleType> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - - <simpleType name="anon_nested"> - <restriction> - <simpleType> - <restriction> - <simpleType> - <restriction base="string"> - <maxLength value="40"/> - </restriction> - </simpleType> - <maxLength value="20"/> - </restriction> - </simpleType> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - -</schema> diff --git a/tests/schema/attribute-group.testscript b/tests/schema/attribute-group.testscript new file mode 100644 index 0000000..e2a64a6 --- /dev/null +++ b/tests/schema/attribute-group.testscript @@ -0,0 +1,102 @@ +# file : tests/schema/attribute-group.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: multiple-ref-levels +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Multiple levels of forward reference. --> + + <complexType name="type"> + <attributeGroup ref="t:g1"/> + </complexType> + + <attributeGroup name="g1"> + <attributeGroup ref="t:g2"/> + <attributeGroup ref="t:g3"/> + </attributeGroup> + + <attributeGroup name="g2"> + <attribute ref="t:foo2"/> + <attribute ref="t:bar2" use="required"/> + </attributeGroup> + + <attributeGroup name="g3"> + <attribute ref="t:foo3"/> + <attribute ref="t:bar3" use="required"/> + </attributeGroup> + + <attribute name="foo2" type="string"/> + <attribute name="bar2" type="string"/> + + <attribute name="foo3" type="string"/> + <attribute name="bar3" type="string"/> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + optional attribute foo2 http://www.w3.org/2001/XMLSchema#string + required attribute bar2 http://www.w3.org/2001/XMLSchema#string + optional attribute foo3 http://www.w3.org/2001/XMLSchema#string + required attribute bar3 http://www.w3.org/2001/XMLSchema#string + } + attribute foo2 http://www.w3.org/2001/XMLSchema#string + attribute bar2 http://www.w3.org/2001/XMLSchema#string + attribute foo3 http://www.w3.org/2001/XMLSchema#string + attribute bar3 http://www.w3.org/2001/XMLSchema#string + } + } + EOO +} + +: any-attr +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- AnyAttribute in attribute groups. --> + + <complexType name="type"> + <attributeGroup ref="t:g1"/> + <attributeGroup ref="t:g2"/> + </complexType> + + <attributeGroup name="g1"> + <anyAttribute namespace="http://www.foo.com"/> + </attributeGroup> + + <attributeGroup name="g2"> + <attribute name="foo" type="string"/> + <anyAttribute namespace="http://www.bar.com"/> + </attributeGroup> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + any-attribute 'any-attribute #1' + optional attribute foo http://www.w3.org/2001/XMLSchema#string + any-attribute 'any-attribute #0' + } + } + } + EOO +} diff --git a/tests/schema/attribute-group/makefile b/tests/schema/attribute-group/makefile deleted file mode 100644 index 2caa99f..0000000 --- a/tests/schema/attribute-group/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/attribute-group/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/attribute-group/test-000.std b/tests/schema/attribute-group/test-000.std deleted file mode 100644 index 61ad802..0000000 --- a/tests/schema/attribute-group/test-000.std +++ /dev/null @@ -1,17 +0,0 @@ -primary -{ - namespace test - { - complex type - { - optional attribute foo2 http://www.w3.org/2001/XMLSchema#string - required attribute bar2 http://www.w3.org/2001/XMLSchema#string - optional attribute foo3 http://www.w3.org/2001/XMLSchema#string - required attribute bar3 http://www.w3.org/2001/XMLSchema#string - } - attribute foo2 http://www.w3.org/2001/XMLSchema#string - attribute bar2 http://www.w3.org/2001/XMLSchema#string - attribute foo3 http://www.w3.org/2001/XMLSchema#string - attribute bar3 http://www.w3.org/2001/XMLSchema#string - } -} diff --git a/tests/schema/attribute-group/test-000.xsd b/tests/schema/attribute-group/test-000.xsd deleted file mode 100644 index 9087a2b..0000000 --- a/tests/schema/attribute-group/test-000.xsd +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Multiple levels of forward reference. --> - - <complexType name="type"> - <attributeGroup ref="t:g1"/> - </complexType> - - <attributeGroup name="g1"> - <attributeGroup ref="t:g2"/> - <attributeGroup ref="t:g3"/> - </attributeGroup> - - <attributeGroup name="g2"> - <attribute ref="t:foo2"/> - <attribute ref="t:bar2" use="required"/> - </attributeGroup> - - <attributeGroup name="g3"> - <attribute ref="t:foo3"/> - <attribute ref="t:bar3" use="required"/> - </attributeGroup> - - <attribute name="foo2" type="string"/> - <attribute name="bar2" type="string"/> - - <attribute name="foo3" type="string"/> - <attribute name="bar3" type="string"/> - -</schema> diff --git a/tests/schema/attribute-group/test-001.std b/tests/schema/attribute-group/test-001.std deleted file mode 100644 index 54a1e96..0000000 --- a/tests/schema/attribute-group/test-001.std +++ /dev/null @@ -1,12 +0,0 @@ -primary -{ - namespace test - { - complex type - { - any-attribute 'any-attribute #1' - optional attribute foo http://www.w3.org/2001/XMLSchema#string - any-attribute 'any-attribute #0' - } - } -} diff --git a/tests/schema/attribute-group/test-001.xsd b/tests/schema/attribute-group/test-001.xsd deleted file mode 100644 index dc44a70..0000000 --- a/tests/schema/attribute-group/test-001.xsd +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- AnyAttribute in attribute groups. --> - - <complexType name="type"> - <attributeGroup ref="t:g1"/> - <attributeGroup ref="t:g2"/> - </complexType> - - <attributeGroup name="g1"> - <anyAttribute namespace="http://www.foo.com"/> - </attributeGroup> - - <attributeGroup name="g2"> - <attribute name="foo" type="string"/> - <anyAttribute namespace="http://www.bar.com"/> - </attributeGroup> - -</schema> diff --git a/tests/schema/buildfile b/tests/schema/buildfile new file mode 100644 index 0000000..f3e5b9c --- /dev/null +++ b/tests/schema/buildfile @@ -0,0 +1,6 @@ +# file : tests/schema/buildfile +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +import libs = libxsd-frontend%lib{xsd-frontend} + +exe{driver}: {hxx cxx}{*} $libs testscript{*} diff --git a/tests/schema/default.testscript b/tests/schema/default.testscript new file mode 100644 index 0000000..e8bcd23 --- /dev/null +++ b/tests/schema/default.testscript @@ -0,0 +1,99 @@ +# file : tests/schema/default.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: qual +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="test" xmlns:x="foo" targetNamespace="test"> + + <xs:complexType name="type"> + <xs:sequence> + <xs:element name="e1" type="xs:int" default="123"/> + <xs:element name="e2" type="xs:int" fixed="456"/> + + <xs:element name="e3" type="xs:QName" default="unqual"/> + <xs:element name="e4" type="xs:QName" fixed="t:foo"/> + <xs:element name="e5" type="xs:QName" default="x:bar"/> + </xs:sequence> + <xs:attribute name="a1" type="xs:int" default="123"/> + <xs:attribute name="a2" type="xs:int" fixed="456"/> + + <xs:attribute name="a3" type="t:qname" default="x:bar"/> + </xs:complexType> + + <xs:simpleType name="qname"> + <xs:restriction base="xs:QName"/> + </xs:simpleType> + + </xs:schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + element e1=123 + element e2==456 + element e3=unqual + element e4==test#t:foo + element e5=foo#x:bar + optional attribute a1=123 http://www.w3.org/2001/XMLSchema#int + optional attribute a2==456 http://www.w3.org/2001/XMLSchema#int + optional attribute a3=foo#x:bar test#qname + [1, 1] sequence + { + [1, 1] element e1=123 http://www.w3.org/2001/XMLSchema#int + [1, 1] element e2==456 http://www.w3.org/2001/XMLSchema#int + [1, 1] element e3=unqual http://www.w3.org/2001/XMLSchema#QName + [1, 1] element e4==test#t:foo http://www.w3.org/2001/XMLSchema#QName + [1, 1] element e5=foo#x:bar http://www.w3.org/2001/XMLSchema#QName + } + } + complex qname: http://www.w3.org/2001/XMLSchema#QName + { + } + } + } + EOO +} + +: unqual +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="test" xmlns="foo" targetNamespace="test"> + + <xs:complexType name="type"> + <xs:sequence> + <xs:element name="e" type="xs:QName" default="unqual"/> + </xs:sequence> + <xs:attribute name="a" type="xs:QName" default="unqual"/> + </xs:complexType> + + </xs:schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + element e=foo#unqual + optional attribute a=foo#unqual http://www.w3.org/2001/XMLSchema#QName + [1, 1] sequence + { + [1, 1] element e=foo#unqual http://www.w3.org/2001/XMLSchema#QName + } + } + } + } + EOO +} diff --git a/tests/schema/default/makefile b/tests/schema/default/makefile deleted file mode 100644 index 3f5f31e..0000000 --- a/tests/schema/default/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/default/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) --anonymous $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/default/test-000.std b/tests/schema/default/test-000.std deleted file mode 100644 index efa1140..0000000 --- a/tests/schema/default/test-000.std +++ /dev/null @@ -1,28 +0,0 @@ -primary -{ - namespace test - { - complex type - { - element e1=123 - element e2==456 - element e3=unqual - element e4==test#t:foo - element e5=foo#x:bar - optional attribute a1=123 http://www.w3.org/2001/XMLSchema#int - optional attribute a2==456 http://www.w3.org/2001/XMLSchema#int - optional attribute a3=foo#x:bar test#qname - [1, 1] sequence - { - [1, 1] element e1=123 http://www.w3.org/2001/XMLSchema#int - [1, 1] element e2==456 http://www.w3.org/2001/XMLSchema#int - [1, 1] element e3=unqual http://www.w3.org/2001/XMLSchema#QName - [1, 1] element e4==test#t:foo http://www.w3.org/2001/XMLSchema#QName - [1, 1] element e5=foo#x:bar http://www.w3.org/2001/XMLSchema#QName - } - } - complex qname: http://www.w3.org/2001/XMLSchema#QName - { - } - } -} diff --git a/tests/schema/default/test-000.xsd b/tests/schema/default/test-000.xsd deleted file mode 100644 index bfaedc5..0000000 --- a/tests/schema/default/test-000.xsd +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="test" xmlns:x="foo" targetNamespace="test"> - - <xs:complexType name="type"> - <xs:sequence> - <xs:element name="e1" type="xs:int" default="123"/> - <xs:element name="e2" type="xs:int" fixed="456"/> - - <xs:element name="e3" type="xs:QName" default="unqual"/> - <xs:element name="e4" type="xs:QName" fixed="t:foo"/> - <xs:element name="e5" type="xs:QName" default="x:bar"/> - </xs:sequence> - <xs:attribute name="a1" type="xs:int" default="123"/> - <xs:attribute name="a2" type="xs:int" fixed="456"/> - - <xs:attribute name="a3" type="t:qname" default="x:bar"/> - </xs:complexType> - - <xs:simpleType name="qname"> - <xs:restriction base="xs:QName"/> - </xs:simpleType> - -</xs:schema> diff --git a/tests/schema/default/test-001.std b/tests/schema/default/test-001.std deleted file mode 100644 index 1b84a07..0000000 --- a/tests/schema/default/test-001.std +++ /dev/null @@ -1,15 +0,0 @@ -primary -{ - namespace test - { - complex type - { - element e=foo#unqual - optional attribute a=foo#unqual http://www.w3.org/2001/XMLSchema#QName - [1, 1] sequence - { - [1, 1] element e=foo#unqual http://www.w3.org/2001/XMLSchema#QName - } - } - } -} diff --git a/tests/schema/default/test-001.xsd b/tests/schema/default/test-001.xsd deleted file mode 100644 index 5ee0507..0000000 --- a/tests/schema/default/test-001.xsd +++ /dev/null @@ -1,11 +0,0 @@ -<?xml version="1.0"?> -<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="test" xmlns="foo" targetNamespace="test"> - - <xs:complexType name="type"> - <xs:sequence> - <xs:element name="e" type="xs:QName" default="unqual"/> - </xs:sequence> - <xs:attribute name="a" type="xs:QName" default="unqual"/> - </xs:complexType> - -</xs:schema> diff --git a/tests/dump/driver.cxx b/tests/schema/driver.cxx index dc87d59..09ef2e5 100644 --- a/tests/dump/driver.cxx +++ b/tests/schema/driver.cxx @@ -1,13 +1,13 @@ -// file : tests/dump/driver.cxx +// file : tests/schema/driver.cxx // license : GNU GPL v2 + exceptions; see accompanying LICENSE file -#include <xsd-frontend/types.hxx> -#include <xsd-frontend/parser.hxx> -#include <xsd-frontend/transformations/anonymous.hxx> -#include <xsd-frontend/transformations/enum-synthesis.hxx> +#include <libxsd-frontend/types.hxx> +#include <libxsd-frontend/parser.hxx> +#include <libxsd-frontend/transformations/anonymous.hxx> +#include <libxsd-frontend/transformations/enum-synthesis.hxx> -#include <xsd-frontend/semantic-graph.hxx> -#include <xsd-frontend/traversal.hxx> +#include <libxsd-frontend/semantic-graph.hxx> +#include <libxsd-frontend/traversal.hxx> #include <iostream> @@ -77,7 +77,7 @@ namespace << endl; wcout << ind << "union " << - (u.named_p () ? u.name () : String ("<anonymous>")) << " "; + (u.named_p () ? u.name () : String ("<anonymous>")); for (Type::ArgumentedIterator i (u.argumented_begin ()); i != u.argumented_end (); ++i) @@ -85,7 +85,7 @@ namespace SemanticGraph::Type& t (i->type ()); if (t.named_p ()) - wcout << ref_name (t) << " "; + wcout << " " << ref_name (t); else { wcout << endl @@ -579,7 +579,7 @@ main (int argc, char* argv[]) SemanticGraph::Path path (argv[i]); Parser parser (true, false, true); - auto_ptr<SemanticGraph::Schema> tu (parser.parse (path)); + unique_ptr<SemanticGraph::Schema> tu (parser.parse (path)); // // diff --git a/tests/schema/element-group.testscript b/tests/schema/element-group.testscript new file mode 100644 index 0000000..5fb385f --- /dev/null +++ b/tests/schema/element-group.testscript @@ -0,0 +1,324 @@ +# file : tests/schema/element-group.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: multiple-ref-levels +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Multiple levels of forward reference. --> + + <complexType name="type"> + <sequence> + <group ref="t:g1" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + </complexType> + + <group name="g1"> + <choice> + <group ref="t:g2" minOccurs="0"/> + <group ref="t:g3" maxOccurs="unbounded"/> + </choice> + </group> + + <group name="g2"> + <choice> + <element ref="t:foo2"/> + <element ref="t:bar2" minOccurs="0"/> + </choice> + </group> + + <group name="g3"> + <choice> + <element ref="t:foo3" maxOccurs="unbounded"/> + <element ref="t:bar3" minOccurs="0" maxOccurs="unbounded"/> + </choice> + </group> + + <element name="foo2" type="string"/> + <element name="bar2" type="string"/> + + <element name="foo3" type="string"/> + <element name="bar3" type="string"/> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + element foo2 + element bar2 + element foo3 + element bar3 + [1, 1] sequence + { + [0, unbounded] choice + { + [0, 1] choice + { + [1, 1] element foo2 http://www.w3.org/2001/XMLSchema#string + [0, 1] element bar2 http://www.w3.org/2001/XMLSchema#string + } + [1, unbounded] choice + { + [1, unbounded] element foo3 http://www.w3.org/2001/XMLSchema#string + [0, unbounded] element bar3 http://www.w3.org/2001/XMLSchema#string + } + } + } + } + element foo2 http://www.w3.org/2001/XMLSchema#string + element bar2 http://www.w3.org/2001/XMLSchema#string + element foo3 http://www.w3.org/2001/XMLSchema#string + element bar3 http://www.w3.org/2001/XMLSchema#string + } + } + EOO +} + +: recursive-refs +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Recursive reference: g1->element->type->g1 --> + + <complexType name="type"> + <sequence> + <group ref="t:g1"/> + </sequence> + </complexType> + + <group name="g1"> + <choice> + <element name="foo"> + <complexType> + <sequence> + <group ref="t:g1"/> + </sequence> + </complexType> + </element> + <element ref="t:bar"/> + </choice> + </group> + + <element name="bar"> + <complexType> + <sequence> + <group ref="t:g1"/> + </sequence> + </complexType> + </element> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <recursive-anonymous> + } + [1, 1] element bar + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <recursive-anonymous> + } + [1, 1] element bar + { + complex <recursive-anonymous> + } + } + } + } + } + } + } + } + } + [1, 1] element bar + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <recursive-anonymous> + } + [1, 1] element bar + { + complex <recursive-anonymous> + } + } + } + } + } + [1, 1] element bar + { + complex <recursive-anonymous> + } + } + } + } + } + } + } + } + element bar + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <anonymous> + { + element foo + element bar + [1, 1] sequence + { + [1, 1] choice + { + [1, 1] element foo + { + complex <recursive-anonymous> + } + [1, 1] element bar + { + complex <recursive-anonymous> + } + } + } + } + } + [1, 1] element bar + { + complex <recursive-anonymous> + } + } + } + } + } + } + } + EOO +} + +: any +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Any in groups. --> + + <complexType name="type"> + <sequence> + <group ref="t:g1" minOccurs="0" maxOccurs="unbounded"/> + <group ref="t:g2" minOccurs="0" maxOccurs="unbounded"/> + </sequence> + </complexType> + + <group name="g1"> + <sequence> + <any namespace="http://www.foo.com"/> + </sequence> + </group> + + <group name="g2"> + <sequence> + <element name="foo" type="int"/> + <any namespace="http://www.bar.com"/> + </sequence> + </group> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex type + { + any 'any #1' + element foo + any 'any #0' + [1, 1] sequence + { + [0, unbounded] sequence + { + [1, 1] any 'any #1' + } + [0, unbounded] sequence + { + [1, 1] element foo http://www.w3.org/2001/XMLSchema#int + [1, 1] any 'any #0' + } + } + } + } + } + EOO +} diff --git a/tests/schema/element-group/makefile b/tests/schema/element-group/makefile deleted file mode 100644 index 41c9afe..0000000 --- a/tests/schema/element-group/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/element-group/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 002 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/element-group/test-000.std b/tests/schema/element-group/test-000.std deleted file mode 100644 index 1652b68..0000000 --- a/tests/schema/element-group/test-000.std +++ /dev/null @@ -1,33 +0,0 @@ -primary -{ - namespace test - { - complex type - { - element foo2 - element bar2 - element foo3 - element bar3 - [1, 1] sequence - { - [0, unbounded] choice - { - [0, 1] choice - { - [1, 1] element foo2 http://www.w3.org/2001/XMLSchema#string - [0, 1] element bar2 http://www.w3.org/2001/XMLSchema#string - } - [1, unbounded] choice - { - [1, unbounded] element foo3 http://www.w3.org/2001/XMLSchema#string - [0, unbounded] element bar3 http://www.w3.org/2001/XMLSchema#string - } - } - } - } - element foo2 http://www.w3.org/2001/XMLSchema#string - element bar2 http://www.w3.org/2001/XMLSchema#string - element foo3 http://www.w3.org/2001/XMLSchema#string - element bar3 http://www.w3.org/2001/XMLSchema#string - } -} diff --git a/tests/schema/element-group/test-000.xsd b/tests/schema/element-group/test-000.xsd deleted file mode 100644 index 1864b28..0000000 --- a/tests/schema/element-group/test-000.xsd +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Multiple levels of forward reference. --> - - <complexType name="type"> - <sequence> - <group ref="t:g1" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - </complexType> - - <group name="g1"> - <choice> - <group ref="t:g2" minOccurs="0"/> - <group ref="t:g3" maxOccurs="unbounded"/> - </choice> - </group> - - <group name="g2"> - <choice> - <element ref="t:foo2"/> - <element ref="t:bar2" minOccurs="0"/> - </choice> - </group> - - <group name="g3"> - <choice> - <element ref="t:foo3" maxOccurs="unbounded"/> - <element ref="t:bar3" minOccurs="0" maxOccurs="unbounded"/> - </choice> - </group> - - <element name="foo2" type="string"/> - <element name="bar2" type="string"/> - - <element name="foo3" type="string"/> - <element name="bar3" type="string"/> - -</schema> diff --git a/tests/schema/element-group/test-001.std b/tests/schema/element-group/test-001.std deleted file mode 100644 index ae8c1fc..0000000 --- a/tests/schema/element-group/test-001.std +++ /dev/null @@ -1,137 +0,0 @@ -primary -{ - namespace test - { - complex type - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <recursive-anonymous> - } - [1, 1] element bar - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <recursive-anonymous> - } - [1, 1] element bar - { - complex <recursive-anonymous> - } - } - } - } - } - } - } - } - } - [1, 1] element bar - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <recursive-anonymous> - } - [1, 1] element bar - { - complex <recursive-anonymous> - } - } - } - } - } - [1, 1] element bar - { - complex <recursive-anonymous> - } - } - } - } - } - } - } - } - element bar - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <anonymous> - { - element foo - element bar - [1, 1] sequence - { - [1, 1] choice - { - [1, 1] element foo - { - complex <recursive-anonymous> - } - [1, 1] element bar - { - complex <recursive-anonymous> - } - } - } - } - } - [1, 1] element bar - { - complex <recursive-anonymous> - } - } - } - } - } - } -} diff --git a/tests/schema/element-group/test-001.xsd b/tests/schema/element-group/test-001.xsd deleted file mode 100644 index c6059af..0000000 --- a/tests/schema/element-group/test-001.xsd +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Recursive reference: g1->element->type->g1 --> - - <complexType name="type"> - <sequence> - <group ref="t:g1"/> - </sequence> - </complexType> - - <group name="g1"> - <choice> - <element name="foo"> - <complexType> - <sequence> - <group ref="t:g1"/> - </sequence> - </complexType> - </element> - <element ref="t:bar"/> - </choice> - </group> - - <element name="bar"> - <complexType> - <sequence> - <group ref="t:g1"/> - </sequence> - </complexType> - </element> - -</schema> diff --git a/tests/schema/element-group/test-002.std b/tests/schema/element-group/test-002.std deleted file mode 100644 index d2c60fe..0000000 --- a/tests/schema/element-group/test-002.std +++ /dev/null @@ -1,24 +0,0 @@ -primary -{ - namespace test - { - complex type - { - any 'any #1' - element foo - any 'any #0' - [1, 1] sequence - { - [0, unbounded] sequence - { - [1, 1] any 'any #1' - } - [0, unbounded] sequence - { - [1, 1] element foo http://www.w3.org/2001/XMLSchema#int - [1, 1] any 'any #0' - } - } - } - } -} diff --git a/tests/schema/element-group/test-002.xsd b/tests/schema/element-group/test-002.xsd deleted file mode 100644 index bc1bd70..0000000 --- a/tests/schema/element-group/test-002.xsd +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Any in groups. --> - - <complexType name="type"> - <sequence> - <group ref="t:g1" minOccurs="0" maxOccurs="unbounded"/> - <group ref="t:g2" minOccurs="0" maxOccurs="unbounded"/> - </sequence> - </complexType> - - <group name="g1"> - <sequence> - <any namespace="http://www.foo.com"/> - </sequence> - </group> - - <group name="g2"> - <sequence> - <element name="foo" type="int"/> - <any namespace="http://www.bar.com"/> - </sequence> - </group> - -</schema> diff --git a/tests/schema/enumeration.testscript b/tests/schema/enumeration.testscript new file mode 100644 index 0000000..5313611 --- /dev/null +++ b/tests/schema/enumeration.testscript @@ -0,0 +1,148 @@ +# file : tests/schema/enumeration.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +test.options += --enum-synthesis + +: synthesis +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Enumeration synthesis --> + + <simpleType name="common-base"> + <restriction base="string"/> + </simpleType> + + <simpleType name="base"> + <restriction base="t:common-base"/> + </simpleType> + + <simpleType name="one"> + <restriction base="t:base"> + <enumeration value="romance"> + <annotation> + <documentation>romance documentation</documentation> + </annotation> + </enumeration> + <enumeration value="fiction"/> + <enumeration value="horror"/> + </restriction> + </simpleType> + + <simpleType name="two"> + <restriction base="t:common-base"> + <enumeration value="horror"/> + <enumeration value="history"/> + <enumeration value="philosophy"/> + </restriction> + </simpleType> + + <simpleType name="three"> + <restriction base="anyURI"> + <enumeration value="foo"/> + <enumeration value="bar"/> + </restriction> + </simpleType> + + <simpleType name="union0"> + <union memberTypes="t:one t:two t:union1"/> + </simpleType> + + <simpleType name="union1"> + <annotation> + <documentation>union1 documentation</documentation> + </annotation> + <union memberTypes="t:one t:two"/> + </simpleType> + + <simpleType name="union2"> + <union memberTypes="t:one t:union1 t:common-base"/> + </simpleType> + + <simpleType name="union3"> + <union memberTypes="t:one t:three"/> + </simpleType> + + <complexType name="complex1"> + <sequence> + <element name="a" type="t:union1"/> + </sequence> + </complexType> + + <complexType name="complex2"> + <simpleContent> + <extension base="t:union1"/> + </simpleContent> + </complexType> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + complex common-base: http://www.w3.org/2001/XMLSchema#string + { + } + complex base: test#common-base + { + } + enumeration one: test#base + { + <romance documentation> + enumerator romance + enumerator fiction + enumerator horror + } + enumeration two: test#common-base + { + enumerator horror + enumerator history + enumerator philosophy + } + enumeration three: http://www.w3.org/2001/XMLSchema#anyURI + { + enumerator foo + enumerator bar + } + enumeration union0: test#common-base + { + <romance documentation> + enumerator romance + enumerator fiction + enumerator horror + enumerator history + enumerator philosophy + } + <union1 documentation> + enumeration union1: test#common-base + { + <romance documentation> + enumerator romance + enumerator fiction + enumerator horror + enumerator history + enumerator philosophy + } + union union2 test#one test#union1 test#common-base + union union3 test#one test#three + complex complex1 + { + element a + [1, 1] sequence + { + [1, 1] element a test#union1 + } + } + complex complex2: test#union1 + { + } + } + } + EOO +} diff --git a/tests/schema/enumeration/makefile b/tests/schema/enumeration/makefile deleted file mode 100644 index 8981773..0000000 --- a/tests/schema/enumeration/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/enumeration/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) --enum-synthesis $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/enumeration/test-000.std b/tests/schema/enumeration/test-000.std deleted file mode 100644 index 64e3065..0000000 --- a/tests/schema/enumeration/test-000.std +++ /dev/null @@ -1,62 +0,0 @@ -primary -{ - namespace test - { - complex common-base: http://www.w3.org/2001/XMLSchema#string - { - } - complex base: test#common-base - { - } - enumeration one: test#base - { - <romance documentation> - enumerator romance - enumerator fiction - enumerator horror - } - enumeration two: test#common-base - { - enumerator horror - enumerator history - enumerator philosophy - } - enumeration three: http://www.w3.org/2001/XMLSchema#anyURI - { - enumerator foo - enumerator bar - } - enumeration union0: test#common-base - { - <romance documentation> - enumerator romance - enumerator fiction - enumerator horror - enumerator history - enumerator philosophy - } - <union1 documentation> - enumeration union1: test#common-base - { - <romance documentation> - enumerator romance - enumerator fiction - enumerator horror - enumerator history - enumerator philosophy - } - union union2 test#one test#union1 test#common-base - union union3 test#one test#three - complex complex1 - { - element a - [1, 1] sequence - { - [1, 1] element a test#union1 - } - } - complex complex2: test#union1 - { - } - } -} diff --git a/tests/schema/enumeration/test-000.xsd b/tests/schema/enumeration/test-000.xsd deleted file mode 100644 index 08539bf..0000000 --- a/tests/schema/enumeration/test-000.xsd +++ /dev/null @@ -1,72 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Enumeration synthesis --> - - <simpleType name="common-base"> - <restriction base="string"/> - </simpleType> - - <simpleType name="base"> - <restriction base="t:common-base"/> - </simpleType> - - <simpleType name="one"> - <restriction base="t:base"> - <enumeration value="romance"> - <annotation> - <documentation>romance documentation</documentation> - </annotation> - </enumeration> - <enumeration value="fiction"/> - <enumeration value="horror"/> - </restriction> - </simpleType> - - <simpleType name="two"> - <restriction base="t:common-base"> - <enumeration value="horror"/> - <enumeration value="history"/> - <enumeration value="philosophy"/> - </restriction> - </simpleType> - - <simpleType name="three"> - <restriction base="anyURI"> - <enumeration value="foo"/> - <enumeration value="bar"/> - </restriction> - </simpleType> - - <simpleType name="union0"> - <union memberTypes="t:one t:two t:union1"/> - </simpleType> - - <simpleType name="union1"> - <annotation> - <documentation>union1 documentation</documentation> - </annotation> - <union memberTypes="t:one t:two"/> - </simpleType> - - <simpleType name="union2"> - <union memberTypes="t:one t:union1 t:common-base"/> - </simpleType> - - <simpleType name="union3"> - <union memberTypes="t:one t:three"/> - </simpleType> - - <complexType name="complex1"> - <sequence> - <element name="a" type="t:union1"/> - </sequence> - </complexType> - - <complexType name="complex2"> - <simpleContent> - <extension base="t:union1"/> - </simpleContent> - </complexType> - -</schema> diff --git a/tests/schema/makefile b/tests/schema/makefile deleted file mode 100644 index b2c2fc3..0000000 --- a/tests/schema/makefile +++ /dev/null @@ -1,23 +0,0 @@ -# file : tests/schema -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make - -tests := \ -annotation \ -anonymous \ -attribute-group \ -default \ -element-group \ -enumeration \ -union - -default := $(out_base)/ -test := $(out_base)/.test -clean := $(out_base)/.clean - -$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests))) -$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests))) -$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests))) - -$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile)) diff --git a/tests/schema/union.testscript b/tests/schema/union.testscript new file mode 100644 index 0000000..3294ee8 --- /dev/null +++ b/tests/schema/union.testscript @@ -0,0 +1,135 @@ +# file : tests/schema/union.testscript +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +: basic +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <simpleType name="u1"> + <union memberTypes="int string"/> + </simpleType> + + <simpleType name="u2"> + <union> + <simpleType> + <restriction base="token"> + <enumeration value="one"/> + </restriction> + </simpleType> + <simpleType> + <restriction base="string"> + <enumeration value="two"/> + </restriction> + </simpleType> + </union> + </simpleType> + + <simpleType name="u3"> + <union memberTypes=" int + + t:u1 "> + <simpleType> + <restriction base="token"> + <enumeration value="one"/> + </restriction> + </simpleType> + <simpleType> + <restriction base="string"> + <enumeration value="two"/> + </restriction> + </simpleType> + </union> + </simpleType> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + union u1 http://www.w3.org/2001/XMLSchema#int http://www.w3.org/2001/XMLSchema#string + union u2 + { + enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#token + { + enumerator one + } + } + + { + enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#string + { + enumerator two + } + } + + union u3 http://www.w3.org/2001/XMLSchema#int test#u1 + { + enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#token + { + enumerator one + } + } + + { + enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#string + { + enumerator two + } + } + + } + } + EOO +} + +: anonymous +: +{ + cat <<EOI >=test.xsd; + <?xml version="1.0"?> + <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + + <!-- Test resolution of anonymous argument types. --> + + <simpleType name="list"> + <list> + <simpleType> + <union memberTypes="int t:enum"/> + </simpleType> + </list> + </simpleType> + + <simpleType name="enum"> + <restriction base="string"> + <enumeration value="male"/> + <enumeration value="female"/> + </restriction> + </simpleType> + + </schema> + EOI + + $* test.xsd >>EOO + primary + { + namespace test + { + list list + { + union <anonymous> http://www.w3.org/2001/XMLSchema#int test#enum + } + enumeration enum: http://www.w3.org/2001/XMLSchema#string + { + enumerator male + enumerator female + } + } + } + EOO +} diff --git a/tests/schema/union/makefile b/tests/schema/union/makefile deleted file mode 100644 index a8a1ca6..0000000 --- a/tests/schema/union/makefile +++ /dev/null @@ -1,33 +0,0 @@ -# file : tests/schema/union/makefile -# license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make - -tests := 000 001 - -driver := $(out_root)/tests/dump/driver -test := $(out_base)/.test -clean := $(out_base)/.clean - -# Convenience alias for default target. -# -$(out_base)/: $(driver) - -# Test. -# -test_targets := $(addprefix $(out_base)/.test-,$(tests)) - -$(test): $(test_targets) -$(test_targets): driver := $(driver) - -.PHONY: $(out_base)/.test-% -$(out_base)/.test-%: $(driver) $(src_base)/test-%.xsd $(src_base)/test-%.std - $(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xsd | diff -u $(src_base)/test-$*.std -) - -# Clean. -# -$(clean): - -# Dependencies. -# -$(call import,$(src_root)/tests/dump/makefile) diff --git a/tests/schema/union/test-000.std b/tests/schema/union/test-000.std deleted file mode 100644 index 6f95b0c..0000000 --- a/tests/schema/union/test-000.std +++ /dev/null @@ -1,37 +0,0 @@ -primary -{ - namespace test - { - union u1 http://www.w3.org/2001/XMLSchema#int http://www.w3.org/2001/XMLSchema#string - union u2 - { - enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#token - { - enumerator one - } - } - - { - enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#string - { - enumerator two - } - } - - union u3 http://www.w3.org/2001/XMLSchema#int test#u1 - { - enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#token - { - enumerator one - } - } - - { - enumeration <anonymous>: http://www.w3.org/2001/XMLSchema#string - { - enumerator two - } - } - - } -} diff --git a/tests/schema/union/test-000.xsd b/tests/schema/union/test-000.xsd deleted file mode 100644 index 99535de..0000000 --- a/tests/schema/union/test-000.xsd +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <simpleType name="u1"> - <union memberTypes="int string"/> - </simpleType> - - <simpleType name="u2"> - <union> - <simpleType> - <restriction base="token"> - <enumeration value="one"/> - </restriction> - </simpleType> - <simpleType> - <restriction base="string"> - <enumeration value="two"/> - </restriction> - </simpleType> - </union> - </simpleType> - - <simpleType name="u3"> - <union memberTypes=" int - -t:u1 "> - <simpleType> - <restriction base="token"> - <enumeration value="one"/> - </restriction> - </simpleType> - <simpleType> - <restriction base="string"> - <enumeration value="two"/> - </restriction> - </simpleType> - </union> - </simpleType> - -</schema> diff --git a/tests/schema/union/test-001.std b/tests/schema/union/test-001.std deleted file mode 100644 index f407b30..0000000 --- a/tests/schema/union/test-001.std +++ /dev/null @@ -1,15 +0,0 @@ -primary -{ - namespace test - { - list list - { - union <anonymous> http://www.w3.org/2001/XMLSchema#int test#enum - } - enumeration enum: http://www.w3.org/2001/XMLSchema#string - { - enumerator male - enumerator female - } - } -} diff --git a/tests/schema/union/test-001.xsd b/tests/schema/union/test-001.xsd deleted file mode 100644 index 00fd8ce..0000000 --- a/tests/schema/union/test-001.xsd +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> - - <!-- Test resolution of anonymous argument types. --> - - <simpleType name="list"> - <list> - <simpleType> - <union memberTypes="int t:enum"/> - </simpleType> - </list> - </simpleType> - - <simpleType name="enum"> - <restriction base="string"> - <enumeration value="male"/> - <enumeration value="female"/> - </restriction> - </simpleType> - -</schema> |