diff options
-rw-r--r-- | xsd/processing/cardinality/processor.cxx | 8 |
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; } } |