Las preguntas de lista presentadas en Preguntas de lista hacen la misma pregunta booleana acerca de un grupo de entidades. Es posible plantear la misma pregunta de tabla de códigos para un grupo de entidades utilizando matrices de pregunta.
Una matriz de pregunta mostrará una lista de preguntas basándose en una tabla de códigos y para cada uno de estos valores de la tabla de códigos y cada entidad, se visualizará un recuadro de selección para permitir al usuario seleccionar todos los valores que se aplican a una entidad determinada.
Por ejemplo, suponga que hay requisito de capturar los posibles niveles de abuso de sustancias para cada miembro de la unidad familiar, se puede añadir una nueva definición de dominio para representar la tabla de códigos SubstanceAbuse y se puede añadir un atributo para almacenar el nivel de abuso de sustancias a la entidad Person, como se indica a continuación:
<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" />
Entonces la matriz de pregunta se define como una pregunta de lista normal y sólo el hecho de que se basa en una tabla de códigos en lugar de un valor booleano hará que se visualice de forma diferente.
... <list-question entity="Person" id="substanceAbuse" criteria="age > 14"> <label id="SubstanceAbuse.Label"> <![CDATA[Abuso de sustancias:]]> </label> <item-label> <label-element attribute-id="firstName" /> </item-label> </list-question>
El ejemplo anterior de una matriz de pregunta, que recopila información de abuso de sustancias sobre varios miembros de la unidad familiar, se mostrará en el reproductor IEG como una matriz en la que cada fila corresponde a una descripción de tabla de códigos y cada columna a una persona.