From ea41bdad099a3a6762ec7a9529d732fe04db100d Mon Sep 17 00:00:00 2001 From: Botond Baranyi <botond.baranyi@ericsson.com> Date: Thu, 10 May 2018 15:19:42 +0200 Subject: [PATCH] xsd2ttcn: fixed subtype generated for restricted xs:long (bug 534537) Change-Id: I91797565cc8dc6e974a7d29b7e8ed28511548374 Signed-off-by: Botond Baranyi <botond.baranyi@ericsson.com> --- .../www_example_org_ranges_integer_e.ttcn | 6 ++++++ regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd | 6 ++++++ xsdconvert/SimpleType.cc | 3 +++ 3 files changed, 15 insertions(+) diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_ranges_integer_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_ranges_integer_e.ttcn index 61404c99d..f99672d14 100644 --- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_ranges_integer_e.ttcn +++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_ranges_integer_e.ttcn @@ -91,6 +91,12 @@ with { }; +type XSD.Long LongMin_1 (-1 .. 9223372036854775807) +with { + variant "name as 'longMin-1'"; +}; + + } with { encode "XML"; diff --git a/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd b/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd index f5ef15440..fa8d4edc1 100644 --- a/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd +++ b/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd @@ -65,4 +65,10 @@ targetNamespace="www.example.org/ranges/integer"> </restriction> </simpleType> +<simpleType name="longMin-1"> + <restriction base="long"> + <minInclusive value="-1" /> + </restriction> +</simpleType> + </schema> diff --git a/xsdconvert/SimpleType.cc b/xsdconvert/SimpleType.cc index e853f9427..47f2d7633 100644 --- a/xsdconvert/SimpleType.cc +++ b/xsdconvert/SimpleType.cc @@ -1524,6 +1524,9 @@ void ValueType::applyFacets() // only for integer and float types upper = -1; } else if (base == "nonNegativeInteger") { lower = 0; + } else if (base == "long") { + lower = LLONG_MIN; + upper = LLONG_MAX; } else if (base == "unsignedLong") { lower = 0; upper = ULLONG_MAX; -- GitLab