Codetabellenfragen

Ist ein Attribut in einem DS-Schema als Codetabelle definiert, so wird die entsprechende Frage standardmäßig in einer Dropdown-Liste angezeigt. Aus dieser Dropdown-Liste kann nur eine Antwort ausgewählt werden.

Wenn beispielsweise der Herkunftsbundesstaat eines Haushaltsmitglieds erfasst werden soll, kann eine neue Domänendefinition hinzugefügt werden, die die Codetabelle AddressState darstellt. Zudem kann ein Attribut zum Speichern des Herkunftsbundesstaats zur Personenentität hinzugefügt werden. Dazu geht man wie folgt vor:

Abbildung 1. Codetabelle für Bundesstaaten sowie Attribut
...
<xsd:simpleType name="IEG_STATE_ADDRESS">
  <xsd:annotation>
    <xsd:appinfo>
      <D:options>
        <D:option name="code-table-name">AddressState</D:option>
      </D:options>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:restriction base="IEG_CODETABLE_CODE" />
</xsd:simpleType>
...

<xsd:element name="Person">
...
  <xsd:attribute name="homeState" type="IEG_STATE_ADDRESS" />

Anschließend kann dem Script eine Frage zum Erfassen von Informationen zum Herkunftsbundesstaat hinzugefügt werden:

Abbildung 2. Frage für Codetabelle zum Bundesstaat
<question-page id="AboutYouPage" entity="Person">
...

  <cluster>
    <question id="homeState">
      <label id="State.Label">
        <![CDATA[Please select your home state:]]>
      </label>
    </question>
  </cluster>

Während der Ausführung des Scripts wird dem Benutzer die Frage in Form einer Dropdown-Liste angezeigt.

Das Definieren von Codetabellenfragen wird von IEG ebenfalls so unterstützt, dass der Benutzer eine Mehrfachauswahl treffen kann.

Wenn die Codetabellenfrage nur eine einzige Auswahl zulässt, kann die Antwort auf die Frage in einem einzelnen Attribut einer Entität gespeichert werden. Da in einer Codetabellenfrage mit Mehrfachauswahl mehrere Antworten möglich sind, muss eine Sequenz hinzugefügt werden, die alle Antworten speichert. Zudem muss ein neuer Entitätstyp definiert werden, der die Antworten in der Sequenz darstellt.

Abbildung 3. Entität "Bundesstaat"
<xsd:element name="Person">

  <xsd:complexType>
    <xsd:sequence minOccurs="0">
      <xsd:element ref="State" minOccurs="0"
          maxOccurs="unbounded" />
      </xsd:sequence>
...
  </xsd:complexType>
</xsd:element>

<xsd:element name="State">
  <xsd:complexType>
    <xsd:attribute name="stateCode" type="IEG_STATE_ADDRESS" />
  </xsd:complexType>
</xsd:element>

Eine Codetabellenfrage wird auf Mehrfachauswahl eingestellt, indem man das Attribut multi-select der Frage auf true setzt. Wenn eine Codetabelle mit Mehrfachauswahl hinzugefügt wird, muss der Cluster, dem die Frage hinzugefügt wird, dem neuen Entitätstyp zugeordnet werden, der die Antworten auf die Frage darstellt. Im genannten Beispiel muss der Cluster der Entität State zugeordnet werden. Die Seite, die die Frage mit der Mehrfachauswahl enthält, muss der Entität zugeordnet sein, die die Sequenz enthält. In diesem Fall muss die Seite der Personenentität zugeordnet werden. Als letzter Schritt muss zum Sichtbarmachen einer Anzahl von Optionen in einer Codetabellenfrage mit Mehrfachauswahl ein Layout zur Frage hinzugefügt werden. In diesem Layout sollte die Anzahl sichtbarer Zeilen für die Frage angegeben sein. Übersteigt die Anzahl der verfügbaren Optionen für die Frage die Anzahl an Zeilen, die im Layout angegeben sind, wird der Frage eine Bildlaufleiste hinzugefügt.

Abbildung 4. Codetabellenfrage mit Mehrfachauswahl
<question-page id="AboutYouPage" entity="Person">
...

  <cluster entity="State">
    <question id="stateCode" multi-select="true">
      <label id="State.Label">
        <![CDATA[Please select the states you lived in:]]>
      </label>
      <layout>
        <num-rows>4</num-rows>
      </layout>
    </question>
  </cluster>

Während der Ausführung des Scripts wird dem Benutzer die Frage in Form einer Liste von Codetabellenbeschreibungen mit einem Kontrollkästchen für jeden Eintrag angezeigt.