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 61404c99d0cac94bac4fe3b34f6fdb5ff407c47f..f99672d14de25ea697620ee8ed5a0f1e271672b9 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 f5ef1544010fa26ec3fa6afbc32aeca6fe27693d..fa8d4edc183af8cb44582ac9303d71d95698b84e 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 e853f942725ff1c66e412b40d4cf06c636223d33..47f2d763331cf8ca7a9d569b046dc8e3db8f401c 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;