private void CalculateSequenceRange(XmlSchemaSequence sequence, out decimal minOccurs, out decimal maxOccurs) {
minOccurs = decimal.Zero; maxOccurs = decimal.Zero;
foreach (XmlSchemaParticle p in sequence.Items) {
minOccurs += p.MinOccurs;
if (p.MaxOccurs == decimal.MaxValue)
maxOccurs = decimal.MaxValue;
else if (maxOccurs != decimal.MaxValue)
maxOccurs += p.MaxOccurs;
}
minOccurs *= sequence.MinOccurs;
if (sequence.MaxOccurs == decimal.MaxValue) {
maxOccurs = decimal.MaxValue;
}
else if (maxOccurs != decimal.MaxValue) {
maxOccurs *= sequence.MaxOccurs;
}
}