diff --git a/src/DCC.ts b/src/DCC.ts
index 0beec8274148d8d93de0bf64da73d3d79de1d0f8..9f18e2f24e5bb72afb7647f13ebe10633aeff717 100644
--- a/src/DCC.ts
+++ b/src/DCC.ts
@@ -883,13 +883,13 @@ export class DataType extends DCCXMLElement {
   constructor(el: Partial<DataType> = {}) {
     super(el);
 
-    // choice
+    // choice but maxOccurs = unbounded
     if (el.text) this.text = ensureArray(el.text).map((x) => new RichContentType(x));
-    else if (el.formula) this.formula = ensureArray(el.formula).map((x) => new FormulaType(x));
-    else if (el.byteData) this.byteData = ensureArray(el.byteData).map((x) => new ByteDataType(x));
-    else if (el.xml) this.xml = ensureArray(el.xml).map((x) => new XmlType(x));
-    else if (el.quantity) this.quantity = ensureArray(el.quantity).map((x) => new QuantityType(x));
-    else if (el.list) this.list = ensureArray(el.list).map((x) => new ListType(x));
+    if (el.formula) this.formula = ensureArray(el.formula).map((x) => new FormulaType(x));
+    if (el.byteData) this.byteData = ensureArray(el.byteData).map((x) => new ByteDataType(x));
+    if (el.xml) this.xml = ensureArray(el.xml).map((x) => new XmlType(x));
+    if (el.quantity) this.quantity = ensureArray(el.quantity).map((x) => new QuantityType(x));
+    if (el.list) this.list = ensureArray(el.list).map((x) => new ListType(x));
   }
 }