aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-01-08 14:04:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-01-08 14:04:58 +0200
commit448760cbdb8f1ee1f3eb3559c7b05e7a61e37a88 (patch)
tree02c404a950281d7af209ee3f786e8abe13d4565f /tests
parent4bbabb3f78ab943c1fecbed08b1920db9609bc34 (diff)
Resolve namespace for default/fixed values of QName type
Diffstat (limited to 'tests')
-rw-r--r--tests/dump/driver.cxx29
-rw-r--r--tests/schema/default/makefile35
-rw-r--r--tests/schema/default/test-000.std28
-rw-r--r--tests/schema/default/test-000.xsd23
-rw-r--r--tests/schema/default/test-001.std15
-rw-r--r--tests/schema/default/test-001.xsd11
-rw-r--r--tests/schema/makefile2
7 files changed, 141 insertions, 2 deletions
diff --git a/tests/dump/driver.cxx b/tests/dump/driver.cxx
index cca6249..d9917d3 100644
--- a/tests/dump/driver.cxx
+++ b/tests/dump/driver.cxx
@@ -203,6 +203,11 @@ namespace
wcout << ind << (a.optional () ? "optional" : "required")
<< " attribute " << a.name ();
+ if (a.fixed ())
+ wcout << "==" << a.value ();
+ else if (a.default_ ())
+ wcout << "=" << a.value ();
+
SemanticGraph::Type& t (a.type ());
if (t.named ())
@@ -241,6 +246,11 @@ namespace
{
wcout << "element " << e.name ();
+ if (e.fixed ())
+ wcout << "==" << e.value ();
+ else if (e.default_ ())
+ wcout << "=" << e.value ();
+
SemanticGraph::Type& t (e.type ());
if (t.named ())
@@ -268,7 +278,14 @@ namespace
wcout << ind << "<" << e.annotation ().documentation () << ">"
<< endl;
- wcout << ind << "element " << e.name () << endl;
+ wcout << ind << "element " << e.name ();
+
+ if (e.fixed ())
+ wcout << "==" << e.value ();
+ else if (e.default_ ())
+ wcout << "=" << e.value ();
+
+ wcout << endl;
}
};
@@ -343,6 +360,11 @@ namespace
wcout << ind << "attribute " << a.name ();
+ if (a.fixed ())
+ wcout << "==" << a.value ();
+ else if (a.default_ ())
+ wcout << "=" << a.value ();
+
SemanticGraph::Type& t (a.type ());
if (t.named ())
@@ -372,6 +394,11 @@ namespace
wcout << ind << "element " << e.name ();
+ if (e.fixed ())
+ wcout << "==" << e.value ();
+ else if (e.default_ ())
+ wcout << "=" << e.value ();
+
SemanticGraph::Type& t (e.type ());
if (t.named ())
diff --git a/tests/schema/default/makefile b/tests/schema/default/makefile
new file mode 100644
index 0000000..dbb5fa9
--- /dev/null
+++ b/tests/schema/default/makefile
@@ -0,0 +1,35 @@
+# file : tests/schema/default/makefile
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2006-2010 Code Synthesis Tools CC
+# 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
new file mode 100644
index 0000000..efa1140
--- /dev/null
+++ b/tests/schema/default/test-000.std
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000..bfaedc5
--- /dev/null
+++ b/tests/schema/default/test-000.xsd
@@ -0,0 +1,23 @@
+<?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
new file mode 100644
index 0000000..1b84a07
--- /dev/null
+++ b/tests/schema/default/test-001.std
@@ -0,0 +1,15 @@
+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
new file mode 100644
index 0000000..5ee0507
--- /dev/null
+++ b/tests/schema/default/test-001.xsd
@@ -0,0 +1,11 @@
+<?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/schema/makefile b/tests/schema/makefile
index c422973..9b69ea7 100644
--- a/tests/schema/makefile
+++ b/tests/schema/makefile
@@ -5,7 +5,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make
-tests := annotation anonymous attribute-group element-group
+tests := annotation anonymous attribute-group element-group default
default := $(out_base)/
test := $(out_base)/.test