IfThenElse

A member of the ControlConstruct substitution group. Describes an if-then-else decision type of control construct. IF the stated condition is met, the THEN clause is trigged, otherwise the ELSE clause is triggered. Contains an IfCondition (the condition that must be met to trigger the Then clause), a ThenConstructReference (indicating the construct to invoke if the condition is met), an ElseConstructReference (indicating the construct to invoke if the condition is not met), and an ElseIf structure allowing the expression of multiple conditions to invoke multiple branching.

Properties

Name

Type

Description

TypeOfIfThenElse

CodeValueType

0..1

A brief textual identification of the IfThenElse. Supports the use of an external controlled vocabulary.

IfCondition

CommandCodeType

0..1

The condition which must be met to trigger the Then clause, expressed as a CommandCode. The condition is an expression in the programming language used in the instrument.

ThenConstructReference

Sequence

0..1

Reference to the control construct which should be triggered if the associated condition is met.

ElseIf

ElseIfType

0..n (Ordered)

Use for multiple branching from a single point in the flow logic represented by the flow logic If, Then, ElseIf, Then, etc.

ElseConstructReference

Sequence

0..1

Reference to the control construct which is triggered if the associated condition is not met.

Properties Inherited from ControlConstruct

Name

Type

Description

ConstructName

NameType

0..n

A name for the ControlConstruct. May be expressed in multiple languages. Repeat the element to express names with different content, for example different names for different systems.

Label

LabelType

0..n

A display label for the ControlConstruct. Supports multiple language versions of the same content as well as optional formatting of the content. Repeat for labels with different content, for example, labels with differing length limitations.

Description

StructuredStringType

0..1

A description of the content and purpose of the ControlConstruct. Supports multiple language versions of the same content as well as optional formatting of the content.

InParameter

InParameterType

0..n

A parameter that may accept content from outside its parent element.

OutParameter

ParameterType

0..n (Ordered)

An identify for the output of the control construct.

Binding

BindingType

0..n

A structure used to bind the content of a parameter declared as the source to a parameter declared as the target. For example, binding the output of a question to the input of a generation instruction. Question A has an OutParameter X. Generation Instruction has an InParameter Y used in the recode instruction. Binding defines the content of InParameter Y to be whatever is provided by OutParameter X for use in the calculation of the recode.

ExternalAid

ExternalAidType

0..n

A pointer to an external aid presented by the instrument such as a text card, image, audio, or audiovisual aid. Typically a URN. Use type attribute to describe the type of external aid provided. Example of terms to use would include: imageOnly audioOnly audioVisual multiMedia. ExternalAid will be available each time the control construct is invoked. Care should be taken when placing an ExternalAid in RepeatWhile, RepeatUntil and Loop constructs as it will recur each time the conditional statement is checked. This does not include interviewer instructions, which are handled separately.

ExternalInterviewerInstruction

ExternalInterviewerInstructionType

0..n

Contains a reference to an interviewer instruct ruction held in a structure other than DDI XML. Uses the OtherMaterial structure to describe and link to the external object.

InterviewerInstructionAttachment

AttachedInstructionType

0..n

an interviewer instruction expressed as DDI XML.

DevelopmentResultsReference

DevelopmentResults

0..n

Reference to the development implementation results which gave rise to this version of the object. TypeOfObject should be DevelopmentResults.

Properties Inherited from Versionable

Name

Type

Description

URN

string

1..1

Agency

string

1..1

ID

string

1..1

Version

string

1..1

UserID

UserIDType

0..n

Allows for the specification of identifiers other than the specified DDI identification of the object. This may be a legacy ID from DDI-C, a system specific ID such as for a database or registry, or a non-DDI unique identifier. As the identifier is specific to a system the system must be identified with the UserID structure.

UserAttributePair

StandardKeyValuePairType

0..n

A system specific user defined property of the object expressed as a key/value pair. As this is specific to an individual system the use of controlled vocabularies for the key is strongly recommended.

VersionResponsibility

string

0..1

Person or organization within the MaintenanceAgency responsible for the version change. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, it may be included in this notation. This is primarily intended for internal use.

VersionResponsibilityReference

Agent

0..1

Reference person or organization within the MaintenanceAgency responsible for the version change, as described in an OrganizationScheme. If it is important to retain the affiliation between and individual responsible for the version and his/her agency, a Relation should be created between the individual referenced here and his/her organization. This is primarily intended for internal use.

VersionRationale

VersionRationaleType

0..1

Textual description of the rationale/purpose for the version change and a coded value to provide an internal processing flag within and organization or system. Note that versioning can only take place on objects owned by the specified DDI Agency. If you are creating a local instance of an object from another agency for current or future modification use BasedOnObject. If the changes being made result in what you determine to be new object rather than a version of a previous object, i.e. the change is too extensive to consider it a version of the existing object, create a new object and use BasedOnObject to provide a link to the object or objects that were a basis for the new object.

BasedOnObject

BasedOnObjectType

0..1

Use when creating an object that is based on an existing object or objects that are managed by a different agency or when the new object is NOT simply a version change but you wish to maintain a reference to the object that served as a basis for the new object. BasedOnObject may contain references to any number of objects which serve as a basis for this object, a BasedOnRationalDescription of how the content of the referenced object was incorporated or altered, and a BasedOnRationalCode to allow for specific typing of the BasedOnReference according to an external controlled vocabulary.

RelatedOtherMaterialReference

OtherMaterial

0..n

The inclusion of an existing OtherMaterial by reference. Use for any type of OtherMaterial not specifically addressed by an inline description for such as ExternalAid in QuestionItem.

VersionDate

cogsDate

0..1

Date of version using the union set BaseDateType. Duration should not be used in this field, even though allowed by the ISO format enforced by the parser.

IsPublished

boolean

0..1

Indicates that the maintainable will not be changed without versioning, and is a stable target for referencing.

Item Type Hierarchy

Relationships

The following identified item types reference this type.

Item Type

Property

ControlConstructGroup

ControlConstructReference

ControlConstructScheme

ControlConstructReference

DevelopmentImplementation

DevelopmentObject/ControlConstructReference

DevelopmentStep

DevelopmentObject/ControlConstructReference

GenerationInstruction

ControlConstructReference

Instrument

ControlConstructReference

Loop

ControlConstructReference

SamplingPlan

ControlConstructReference

SamplingStage

ControlConstructReference

Sequence

ControlConstructReference

Split

ControlConstructReference

SplitJoin

ControlConstructReference

stub