summaryrefslogtreecommitdiff
path: root/xsd/processing
diff options
context:
space:
mode:
Diffstat (limited to 'xsd/processing')
-rw-r--r--xsd/processing/cardinality/processor.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/xsd/processing/cardinality/processor.cxx b/xsd/processing/cardinality/processor.cxx
index 8356ee8..0fcabed 100644
--- a/xsd/processing/cardinality/processor.cxx
+++ b/xsd/processing/cardinality/processor.cxx
@@ -144,7 +144,13 @@ namespace Processing
else
{
ei.min = j->second.min < ei.min ? j->second.min : ei.min;
- ei.max = j->second.max > ei.max ? j->second.max : ei.max;
+
+ // Unbounded is encoded as 0.
+ //
+ if (j->second.max == 0 || ei.max == 0)
+ ei.max = 0;
+ else
+ ei.max = j->second.max > ei.max ? j->second.max : ei.max;
}
}