Die in Listenfragen dargestellten Listenfragen stellen dieselbe boolesche Frage zu einer Gruppe von Entitäten. Es ist möglich, dieselbe Codetabellenfrage zu einer Entitätengruppe mithilfe von Fragenmatrizes zu stellen.
Mit einer Fragenmatrix wird anhand einer Codetabelle eine Liste von Fragen angezeigt. Für jeden aufgeführten Codetabellenwert und jede Entität werden Kontrollkästchen angezeigt, mit denen der Benutzer alle die Werte auswählen kann, die auf eine bestimmte Entität zutreffen.
Wenn beispielsweise für jedes Haushaltsmitglied mögliche Abstufungen von Drogenmissbrauch erfasst werden sollen, kann eine neue Domänendefinition hinzugefügt werden, die die Codetabelle SubstanceAbuse (Drogenmissbrauch) darstellt. Zudem kann ein Attribut zum Speichern der Abstufung des Drogenmissbrauchs hinzugefügt werden. Dazu geht man wie folgt vor:
<xsd:simpleType name="IEG_SUBSTANCEABUSE"> <xsd:annotation> <xsd:appinfo> <D:options> <D:option name="code-table-name">SubstanceAbuse</D:option> </D:options> </xsd:appinfo> </xsd:annotation> <xsd:restriction base="IEG_CODETABLE_CODE" /> </xsd:simpleType> <xsd:element name="Person"> <xsd:complexType> ... <xsd:attribute name="substanceAbuse" type="IEG_SUBSTANCEABUSE" />
Anschließend wird die Fragenmatrix als eine reguläre Listenfrage definiert, nur dass sie aufgrund der Tatsache, dass sie auf einer Codetabelle basiert statt auf einem booleschen Wert, anders angezeigt wird.
... <list-question entity="Person" id="substanceAbuse" criteria="age > 14"> <label id="SubstanceAbuse.Label"> <![CDATA[Substance Abuse:]]> </label> <item-label> <label-element attribute-id="firstName" /> </item-label> </list-question>
Die Fragenmatrix aus dem obigen Beispiel, mit der Informationen zum Drogenmissbrauch mehrerer Mitglieder eines Haushalts erfasst wurden, wird im IEG-Player als eine Matrix angezeigt, in der jede Zeile einer Codetabellenbeschreibung und jede Spalte einer Person entspricht.