이 표준에서 평가 문항이란 응시자에게 제시되는 정보와 그 문항을 채점하는 방법에 대한 정보를 포함한다. 응시자의 답안이 응답 처리 규칙에 의하여 결과로 변환되는 시점에 채점이 이루어 진다. 때로는 응시자에게는 동일한 것처럼 보이지만 실제로는 배점이 다른 문항을 여러 개 두는 것이 바람직할 때도 있다. 이 표준에서 이들 문항은 그 정의가 각기 다르며, 반드시 뚜렷한 식별자를 갖는다. 이러한 문항들의 표현(presentation)의 중요한 부분을 공유하는 문항 간 교환을 촉진하기 위해서, 이 표준은 itemBody 에서 개별적으로 관리되는 문항 구성요소(참조: 문항 및 시험 구성요소item and test fragment)를 지원한다.
클래스(Class) : assessmentItem
속성(Attribute) : identifier [1]: string
문항의 주 식별자. 이 식별자는 문항의 메타데이터 내에 해당하는 엔트리(entry)를 가져야 한다.
참조 : 메타데이터와 사용 데이터(metadata and usage data)
속성(Attribute) : title [1]: string
assessmentItem의 타이틀은 itemBody의 전체 텍스트를 이용할 수 없는 상황에서 문항이 선택될 수 있게 한다. 예를 들어, 응시자가 답안 작성을 어떠한 순서로 할 것인가를 결정하기 위해 문항을 검색하는 경우가 그것이다. 따라서 전송 엔진은 이 타이틀을 응시자에게 언제든 보여줄 수 있어야 하나, 의무사항은 아니다.
속성(Attribute) : label [0..1]: string256
속성(Attribute) : lang [0..1]: language
속성(Attribute) : adaptive [1]: boolean = false
문항은 적응형 문항과 비적응형 문항으로 나뉜다.
속성(Attribute) : timeDependent [1]: boolean
속성(Attribute) : toolName [0..1]: string256
toolName 속성은 문항을 작성하는 도구가 스스로를 확인(identify)하도록 한다. 다른 처리 시스템은 이 정보를 문항 itemBody의 요소에 대한 레이블과 같이 응용프로그램에 특화된 데이터의 내용을 해석하기 위해 사용할 수 있다.
속성(Attribute) : toolVersion [0..1]: string256
toolVersion 속성은 문항을 작성하는 도구가 자체 버전을 식별할 수 있도록 한다. 이 값은 반드시 toolName의 문맥에서만 해석되어야 한다.
포함(Contains) : responseDeclaration [*]
포함(Contains) : outcomeDeclaration [*]
포함(Contains) : templateDeclaration [*]
포함(Contains) : templateProcessing [0..1]
포함(Contains) : stylesheet [0..*]
포함(Contains) : itemBody [0..1]
포함(Contains) : responseProcessing [0..1]
포함(Contains) : modalFeedback [*]
문항 세션(item session)이란, 어떤 한 문항의 특정 인스턴스(particualr instance)에서 응시자에 의해 발생하는 모든 시도를 누적한 것이다. 어떠한 테스트 유형의 경우에는, 동일한 문항이 응시자에게 여러 번 제시되기도 한다. (예를 들어, 반복연습(drill and practice)) 문항에 이러한 상황이 발생하는 것이나 또는 문항의 인스턴스(instance)는 각각 자체의 문항 세션과 연계되어 있다.
다음의 도표는 문항 세션에 대한 사용자의 인지 상태를 보여준다. 모든 상태가 모든 시나리오에 적용되는 것은 아니다. 예를 들어, 어떤 문항에는 피드백이 제공되지 않을 수 있고, 또는 문항이 사용되는 문맥(context)에서 피드백이 허용되지 않을 수 있다. 마찬가지로, 응시자는 자신의 답안을 다시 검토할 수 없거나, 모델 솔루션을 살펴보지 못할 수 있다. 실제로는, 시스템은 제한된 횟수만큼 상태전환(state transition)의 표시를 지원하거나, 이 도표에서 보이지 않는 다른 상태전환을 지원할 수도 있다.
시스템 개발자가 시스템에 적용할 요구조건을 결정하기 위해 거쳐야 하는 첫 번째 중요한 단계는 그 시스템 내에서 지원되는 사용자 인지(user-perceived) 상태가 어떤 것인지 확인하고, 도표에서 표시된 상태전환을 본인의 이벤트 모델(event model)에 맞추는 것이다.
다음의 내용은 이 표준이 전송 엔진에 대해 제시하는 요구 조건 중 일부이다.
그림 4.1 문항 세션(item session)의 생애주기
관련 문항이 먼저 응시자에게 전송하는데 있어 적합해 질 때 세션이 시작된다. 이 때 문항 세션(item session)의 상태는, 세션의 종료 시까지 응시자의 행위에 따라 갱신 및 유지 된다. 세션의 상태는 언제든 결과 보고 상태인 itemResult로 바뀔 수 있다. 전송시스템은 itemResult를 새로운 세션의 기초로 사용될 수 있도록 허용할 수 있는데, 이는 응시자의 답안이 문항 자체(그리고 아마도 솔루션과 비교해서) 콘텍스트에서 보여질 수 있게 하거나, 응시자가 중단했던 세션을 나중에 재개할 수 있도록 하는 것이 목적이다.
문항 세션(item session)의 초기 상태는 문항이 응시자에게 전달될 것이라는 결정은 내려졌으나 실제 전송(delivery)은 되지 않은 상태를 의미한다.
전형적인 비적응형 시험의 경우, 문항은 사전에 선택되며 응시자가 모든 문항과 진행하는 상호작용은 해당 응시자가 모든 문항을 시도했는가의 여부에 상관없이 시험 세션의 종료시점에 보고된다. 사실상, 문항 세션은 시험이 시작 될 때 모든 문항의 초기 상태에서 생성되며, 동일하게 유지된다. 반면 적응형 시험의 경우에는, 제시될 문항들이 해당 시점에 제시된 문항에 연계된 응답 및 결과에 기초하여, 세션 진행 중에 선택된다. 문항은 큰 풀(large pool)에서 선택되며, 전송 엔진은 실제로 선택된 문항과 응시자간의 상호작용을 보고만 한다.
응시자가 문항과 진행하는 상호작용은 0 또는 그 이상의 횟수로 나누어 진다. 각각의 시도마다, 응시자는 1회 또는 그 이상의 응시자 세션을 통해 문항과 상호작용한다. 응시자 세션 종료 시에, 문항은 다음의 응시자 세션을 준비하기 위한 중지 단계(suspended state)에 놓일 수 있다. 응시자 세션 중에는, 문항 세션(item session)이 상호작용 진행상태가 된다. 일단 시도가 종료되면, 응답 처리가 시작되고 응답 처리 이후에 새로운 시도를 할 수 있다
비적응형 문항의 경우, 응답 처리는 전형적으로 대개 1회로 끝나는 등 제한된 횟수로만 진행된다. 적응형 문항의 경우는 이러한 제한이 필요없는데, 그 이유는 응답 처리가 해당 문항을 통한 경로를 토대로, 자신이 지정한 값을 결과 변수에 적응(adapt)시키기 때문이다. 두 경우 모두, 각각의 시도가 종료될 때 응답 처리 시스템이 작동한다. 문항 본문의 외형, 그리고 형식적 피드백을 보여줄 것인가 하는 부분들은 결과 변수 값에 의해 결정된다.
더 이상의 시도가 허용되지 않을 때, 문항 세션이 종료상태로 넘어간다. 일단 이 상태로 진행되면, 응답 변수(response variable) 값이 확정된다. 문항이 종료상태로 넘어간 뒤에도, 전송시스템 또는 보고 도구(reporting tool)가 여전히 문항 제시를 허용할 수도 있다. 이러한 유형의 문항출력(presentation)은 검토단계 에서 발생하는데, 만약 응답 처리가 진행되고 적절한 결과 변수가 설정되었다면, 이 시점에서 요약 피드백(summary feedback)이 보여질 수도 있다.
마지막으로, 솔루션 화면을 보여주는 시스템의 경우, 문항 세션(item session)이 솔루션 상태로 넘어간다. 이 상태에서는, 응시자의 응답이 임시로 해당 responseDeclarations에서 제공된 올바른 값으로 대체된다. (만일 어떠한 것도 선언되지 않았을 경우 NULL 값)
클래스(Class) : itemSessionControl
관련 클래스(Associated Classes) :
testPart, sectionPart
문항이 시험의 일부로 참조될때, 시험의 시도 횟수와 허용되는 단계가 제한될 수 있다. 이러한 제한은 개별 문항에, 섹션 전체에, 또는 전체 testPart에 대해 기술되어 지정될 수 있다. 기본적으로, testPart 수준에서의 설정은, 해당 설정이 assessmentSection 수준 또는 최종적으로 개별assessmentItemRef 수준까지 덮어쓰기(override) 되지 않는 한, 해당 testPart에 속한 모든 문항에 영향을 미친다. 아래 제시된 초기값은 어떠한 적용 가능한 제한도 없는 경우에만 사용된다.
속성(Attribute) : maxAttempts [0..1]: integer
비적응형 문항의 경우, maxAttempts는 주어진 시험 맥락(context)이 허용하는 최대 시도 횟수를 제어한다. 비적응형 문항에 대한 채점 규칙이 각각의 시도에 동일하게 적용되므로, 일반적으로 이 속성 값은 1이다. 0값은 제한이 없음을 의미한다. 지정되지 않은 경우, 비적응형의 문항에서 maxAttempts는 1로 한다. 적응형 문항의 경우, maxAttempt 값은 무시되는데, 시도 횟수가 결과 변수에 내장(built-in)된 completionStatus 값에 의해 제한되기 때문이다.
1보다 큰 maxAttempts 값은, 정의상, 모든 적용가능한 피드백이 보여져야 한다는 것을 의미한다. 적용가능 할 경우, 이는 형식적 피드백 과 통합적 피드백 모두에 적용된다. 그러나, 허용된 시도 횟수가 모두 사용될 때 (혹은 적응형 문항의 경우에서 completionStatus가 완료(completed)로 설정되었을 때), 피드백을 보여줄지의 여부는 showFeedback 제약에 의해 제어된다
속성(Attribute) : showFeedback [0..1]: boolean
이 제약은 최종 시도가 종료된 후 피드백의 가시성에 영향을 준다. 만약 숨김(false) 값으로 설정된 경우, 피드백은 보여지지 않는다. 심지어 응시자가 검토단계에 대한 접근권을 가지고 있는 경우에도, 이 제한은 형식적인 피드백 과 통합적인 피드백 모두에 적용된다. 기본값은 숨김(false) 이다.
속성(Attribute) : allowReview [0..1]: boolean
이 제약은 최종 시도 종료 후의 피드백의 가시성에 영향을 미친다. 허용(true)으로 설정된 경우, 문항 세션은 검토단계로 들어가도록 허용되는데, 이 동안 응시자는 itemBody와 본인이 제시한 응답을 함께 검토할 수 있지만, 이를 업데이트하거나 응답을 다시 제출할 수는 없다. 불허(false)로 설정된 경우, 일단 마지막 시도의 응답을 제출했다면, 응시자는 itemBody 또는 그 응답을 다시 검토할 수 없다. 기본값은 허용(true)이다.
만약 검토단계가 허용되고 피드백은 허용되지 않는 다면, 전송시스템은 검토과정의 일부로 진행된 마지막 시도에서 생성된 통합적 피드백이 보이지 않도록 각별한 주의를 기울여야 한다. 하지만, 피드백은 이전에 보이던 자료를 숨기는 형태를 취할 수 있으며, 뿐만 아니라 이전에 감추어져 있던 자료를 나타나게 하는 보다 일반적인 형태를 취할 수도 있다.
이러한 모호성을 해결하기 위해, 비적응형 문항의 경우, ‘피드백 없음’은 각각의 시도(attempt) 가 시작될 때마다 응시자에게 보여지는 itemBody의 버전으로 지정된다. 다시 말해, 모든 통합적 피드백의 가시성은 응답 처리의 실행으로 업데이트 된 결과 변수가 아니라 결과 변수의 기본값에 의해 결정된다는 것이다.
적응형 문항의 경우, 응답 처리의 반복적 특성으로 상황이 복잡해 질 수 있는데, 이 특성이 검토를위한 문항을 위치시키기 위한 적절한 상태를 확인하기 어렵게 만들기 때문이다. 전송 엔진에게 결과 변수 값의 임시저장(cache) 요청을 피하기 위해서는, allowReview가 허용(true)일 경우 적응형 문항을위해 showFeedback에 대한 설정은 무시되어야 한다. 검토단계에서는 통합적 피드백의 가시성을 결정하기 위해 결과 변수의 최종값이 사용되어야 한다.
속성(Attribute) : showSolution [0..1]: boolean
이 제약은 시스템이 응시자에게 솔루션단계로 들어가는 방법을 제공하는가의 여부를 제어한다. 기본값은 불허(false) 이다
속성(Attribute) : allowComment [0..1]: boolean
일부 전송시스템은 응시자 코멘트 캡쳐(comment capture)를 지원한다. 코멘트는 평가되는 응답이 아니며, 평가가 진행되는 동안, 응시자로부터의 피드백을 다른 행위자에게 제공한다. 이 제약은 응시자가 세션 중에 문항에 대한 코멘트를 제공하도록 허용할 것인가의 여부를 제어한다.
속성(Attribute) : allowSkipping [0..1]: boolean = true
응시자가 응답을 제공하지 않았을 경우, 문항을 건너띄도록 지정한다. 다른 말로, 모든 응답 변수(response variable)들이 기본값과 같이 제출되거나, 또는 NULL 이 된다. 이와 같은 정의는 outcomeProcessing 안에서 사용가능한 numberResponded 연산자(operator)와 일치한다. 불허(false) 인 경우, 응시자는 문항을 건너띌 수 없다. 또는 다른 말로, 응답 변수(response variable) 중 적어도 하나에 대한 비기본값을 제공할 때까지 응시자에게 문항 제출이 허용되지 않는다. 정의상, 응답 변수(response variable)를 갖지 않는 문항은 건너띌 수 없다. 이 속성값은 문항이 개별 제출모드(submission mode)를 가진 testPart 안에 있을 때에만 적용할 수 있다. allowSkipping이 허용(true)인 경우, 전송 엔진은 응시자가 응답 없음을 선택할 수 있도록 해야 한다. "건너띄기(skip)" 버튼을 제공하는 것이 예가 될 수 있다.
속성(Attribute) : validateResponses [0..1]: boolean
이 속성은 응시자가 무효 응답(invalid response)을 제출했을 경우 전송 엔진의 행동을 제어한다. 무효 응답이란, 연계된 interaction이 걸어 둔 제약을 만족하지 않는 응답을 말한다. 상세정보는 interaction 참조. validateResponses가 작동되면(true), 응시자는 모든 interaction에 유효 응답을 제공할 때까지 문항을 제출할 수 없다. 작동 해지(false)인 경우, 무효 응답은 시스템에 의해 수용될 수 있다. 이 속성값은 문항이 개별 제출모드를 가진 testPart 안에 있을 때에만 적용할 수 있다. (참조 : 문항 검색(navigation)과 제출)
추상(Abstract) 클래스: variableDeclaration
파생된(Derived) 클래스: outcomeDeclaration, responseDeclaration, templateDeclaration
그림 5.1 변수 선언
문항 변수(item variable)는 변수 선언에 의해 선언된다. 모든 변수들은 반드시 선언되어야 하지만, 단 아래에 언급된 내장(built-in)세션의 경우는 제외한다. 이들은 암시적으로 선언된다. 이 선언의 목적은 식별자와 변수를 연결하고, 변수값의 런타임(runtime) 유형을 식별하는 것이다.
문항 변수(item variable)는 값을 전혀 갖지 않을 수 있는데, 이 경우를 특수값 NULL 이라고 한다. 예를 들어, 응시자가 어떤 상호작용에 반응할 기회를 갖지 못했다면, 이때 모든 관련 응답 변수(response variable)는 NULL 값을 갖게 된다. 빈 컨테이너와 빈 문자열은 항상 NULL 값으로 취급한다.
속성(Attribute) : identifier [1]: identifier
내장(built-in) 세션변수의 식별자는 보류되어 있으며, 이러한 것들에는 completionStatus, numAttempts, duration 등이 있다. 한 문항에서 선언된 모든 문항 변수(item variable)들은 동일한 네임 스페이스를 갖는다. 서로 다른 문항들은 각기 다른 네임스페이스를 갖는다.
속성(Attribute) : cardinality [1]: cardinality
각 변수는 단일 값이거나 또는 다중 값이다. 다중 값 변수는 컨테이너로 불리며, 순차적(ordered), 비순차적(unordered), 레코드(record) 형태로 정의된다. 참조 : cardinality
속성(Attribute) : baseType [0..1]: baseType
변수 값이 도출되는(컨테이너의 경우 개별 값이 도출되는) 값 영역(value space)은 baseType으로 식별된다. 런타임 데이터 모델 내에서 baseType은 아토믹(atomic)값을 갖는 것으로 간주되는 사전 정의된 유형의 작은 집합 중 하나를 선택한다. 레코드 다중성(record cardinality)을 갖는 변수는 기본 유형(base-type)을 갖지 않는다.
포함(Contains) : defaultValue [0..1]
변수에 대한 선택적(optional) 기본값. 변수가 기본값으로 설정되는 시점은 문항 변수(item variable)의 유형에 따라 달라진다.
클래스(Class) : value
관련 클래스(Associated Classes) :
ordinaryStatistic, templateVariable, candidateResponse, correctResponse, outcomeVariable, defaultValue
변수 선언과 결과 보고 내에서 어떠한 baseType의 단일 값(single value) 이라도 표현할 수 있는 클래스이다. 기본 유형(base-type)은 이 선언의 baseType 속성에 의해 정의되는데, 레코드 다중성 (record cardinality)을 갖는 변수의 경우는 예외이다.
속성(Attribute) : fieldIdentifier [0..1]: identifier
레코드의 일부를 형성하는 값의 필드 식별자를 지정하기 위해서만 사용되는 속성.
속성(Attribute) : baseType [0..1]: baseType
레코드의 일부를 형성하는 값의 기본 유형(base-type)을 지정하기 위해서만 사용되는 속성
클래스(Class) : defaultValue
관련 클래스(Associated Classes) : variableDeclaration
속성(Attribute) : interpretation [0..1]: string
기본 값을 사람이 읽을 수 있도록 해석한 것
포함(Contains) : value [1..*]
열거(Enumeration) : cardinality
single
multiple
ordered
record
표현식(expression) 또는 itemVariable은 단일(single) 값 이거나 다중(multiple) 값이 될 수 있다. 다중 값을 갖는 표현(또는 변수)을 컨테이너라고 부른다. 하나의 컨테이너는 값 목록을 포함하며, 이 목록이 NULL로 취급되는 경우 빈 것일 수 있다. 다중 또는 순차적 컨테이너(ordered container) 안의 모든 값은 동일한 세트 값에서 도출된 것이지만, 컨테이너에서는 동일한 값이 여러 번 나타날 수 있다. 다른 말로, [A,B,B,C] 가 한 컨테이너에서 수용 가능한 값이라고 하자. 다중 중복성(cardinality multiple) 과 값 [A,B,C] 를 갖는 컨테이너는, 값 [C,B,A]를 갖는 컨테이너와 유사한 셈이다. 하지만 이들 두 값은 순서화된 다중성(cardinality ordered)를 갖는 컨테이너와는 전혀 다른 것으로 간주된다. 응답 변수(response variable) 값으로 사용될 때, 이러한 구분은 다중응답 다중선택 작업에서의 답 선택하기와 객체 정렬 작업에서의 등수 선택하기 간의 차이점에 의해 전형적으로 보여진다. [ISO11404] 에 따르면, 다중 중복성(multiple cardinality)를 갖는 컨테이너는 "bag-type"으로, 순서화된 다중성(ordered cardinality)를 갖는 컨테이너는 "sequence-type", 레코드 다중성(record cardinality)을 갖는 컨테이너는 "record-type"으로 불린다.
레코드 컨테이너 유형은 독립된 값 세트를 갖는 일종의 특수 컨테이너다. 여기서 각각의 값은 자체 식별자로 구별되며 자체적인 기본 유형(base-type)을 갖는다. 이 표준은 레코드 유형을 직접적으로 사용하지는 않지만, customInteractions를 작동시켜, 보다 복잡한 응답을 조작하고, customOperators 를 작동시켜 보다 복잡한 값을 반환할 수 있게 한다.
열거(Enumeration) : baseType
기본 유형(base-type) 은 오토믹(atomic) 값 세트(이 표준에 대한 atomic)를 단순하게 설명한 것이다. 명심할 점은 런타임 데이터 모델을 정의하기 위해 사용되는 몇몇 baseType과, 표준 자체의 속성 값을 정의하기 위해 사용되는 기본 데이터 유형의 baseTypes 정의가 동일하다는 것이다. 런타임 모델에서 사용된 baseType 세트를 정의하기 위해 열거(enumeration)를 사용하는 것은, 유사한 이름을 갖는 클래스의 사용과는 대조적으로, 두 가지 별개 수준의 모델링의 구별을 돕기 위해 설계되었다.
identifier
식별자 값(identifier value) 집합은 identifier 클래스에 의해서 정의되는 값 집합과 동일하다
boolean
논리 값(Boolean value) 집합은 boolean 클래스에서 정의되는 값 집합과 동일하다
integer
정수 값(integer value) 집합은 integer 클래스에서 정의되는 값 집합과 동일하다
float
플로트 값(float value) 집합은 float 클래스에서 정의되는 값 세트와 동일하다
string
문자열 값(string value) 집합은 string 클래스에서 정의되는 값 세트와 동일하다
point
포인트 값(point value)은 그래픽 포인트에 상응하는 정수 튜플(integer tuple)을 나타낸다. 두 개의 정수는 각각 수평(X 축) 과 수직(Y축)을 나타내며. 축의 위/아래 와 좌/우는 문맥(context)에 따른다.
pair
쌍 값(pair value)은 두 객체 간 조합에 해당하는 식별자 한 쌍을 대표하는 값이다. 이 조합은 지시되지 않은(undirected) 것이므로, (A,B)와 (B,A)는 등가이다
directedPair
방향성 쌍(directedPair value)은 두 객체 간의 지시된 조합에 해당하는 식별자 한 쌍을 대표하는 값이다. 두 개의 식별자는 각각 그 소스와 대상 객체에 해당한다.
duration
실행시간(duration value)은 두 개의 시간 포인트 간 거리(시간 내에)를 지정한다. 다른 말로, [ISO8601]이 정의하는 시간대를 말한다. 실행시간은 초단위로 측정되며 소수부가 있을 수 있다.
file
파일 값(file value)은 콘텐츠 유형과 파일에 주어진 선택적(optional) 파일명에 의해 부여된 어떤 옥텟(8bit, 바이트)의 시퀀스(연속, sequence)를 뜻한다. (예를 들어, 응시자에 의해, 상호작용의 일환으로 파일을 업로딩 하는 경우). 파일의 콘텐츠 유형은 [RFC2045]에 의해 정의되는 MIME 유형 중의 하나이다.
uri
URI 값은 [URI]에 의해 정의된 URI(Uniform Resource Identifier)이다.
클래스(Class) : mapping
관련 클래스(Associated Classes) : responseDeclaration, categorizedStatistic
모든 baseType(파일과 duration 제외) 소스 집합에서 단일 플로트(single float)로 매핑을 생성하기 위해 사용되는 특수 클래스. 명심할 점은 부동 소수점(floating point) 값을 매치시키는 작업이 어렵기 때문에 기본 유형 플로트(base-type float)부터 매핑하는 작업은 피해야 한다. (참조: 매치 연산자 (match operator)) 컨테이너를 매핑 할 때, 결과는 목표 집합에 있는 매핑한 값의 합이 된다. (참조 :
mapResponse)
속성(Attribute) : lowerBound [0..1]: float
컨테이너를 매핑한 결과를 위한 하한(lower bound). 지정되지 않았다면, 하한이 없다는 뜻이다.
속성(Attribute) : upperBound [0..1]: float
컨테이너를 매핑한 결과에 대한 상한(upper bound). 지정되지 않았다면, 상한이 없다는 뜻이다.
속성(Attribute) : defaultValue [1]: float = 0
소스 값을 위한 구체적인 매핑이 명시적으로 주어지지 않았을 때 사용되도록 설정된 목표 집합에 있는 기본값
포함(Contains) : mapEntry [1..*]
맵은 mapEntries 집합으로 정의된다. 각 mapEntry 집합은 소스 집합의 개별 값을 단일 플로트(single float)로 매핑한다.
클래스(Class) : mapEntry
관련 클래스(Associated Classes) : mapping
속성(Attribute) : mapKey [1]: valueType
소스 값
속성(Attribute) : mappedValue [1]: float
매핑된 값
클래스(Class) : responseDeclaration (variableDeclaration)
관련 클래스(Associated Classes) : assessmentItem
응답 변수(response variable)는 응답 선언에 의해 선언되며 itemBody 안에서 상호작용을 하게 되어 있다.
런타임 시에, 응답 변수(response variable)는 문항 세션(item session)의 부분으로 시작된다. 이 응답 변수(response variable)의 값은 해당 초기값이 변수 선언에서 주어지는 가의 여부와 관계없이 항상 NULL로 초기화된다. NULL 값을 갖는 응답 변수(response variable)는 응시자가 응답을 제시하지 않은 상태임을 의미하며, 이는 응시자가 아직 문항 풀기를 전혀 시도하지 않았거나 응시자가 시도는 했지만 응답을 제공하지 않기로 결정했기 때문이다.
만약 응답 변수(response variable)에 기본값이 제공되었다면, 변수는 첫 번째 시도 시점에서 이 기본값으로 설정되게 된다. 만약 응시자가 문항을 전혀 시도하지 않는다면, 다른 말로 문항 세션(item session)이 초기단계에서부터 종료단계까지 상호작용 단계를 거치지 않은 채 그대로 통과해 버린 다면, 응답 변수(response variable)는 NULL로 남아있게 되며 기본값은 절대 사용되지 않는다.
전송 엔진 구현자는 기본 응답 변수(response variable) 값을 갖는 문항을 위한 사용자 인터페이스를 구현할 때 주의해야 한다. 만약 관련 상호작용이 기본단계에 남아 있는 경우 (즉, 기본값을 나타내는) 중요한 것은, 응시자가 이 값을 제출하고자 의도 했었고 제공된 기본값을 단순히 알아차리지 못한 것이 아니라는 점을 시스템이 확신하도록 해야 한다. 특히 응시자의 시도가 외부상황, 예를 들어 시간 초과 등을 이유로 종료된 경우에 적용된다. 이러한 사례를 구별하기 위해 필요한 기술은 사용자 인터페이스 디자인과 관련된 것으로써, 이 표준이 다루는 범위를 벗어난다.
포함(Contains) : correctResponse [0..1]
응답 선언은 선택적 correctResponse를 지정할 수 있다. 이 값은, 올바르거나 또는 맞는 값으로 간주되는 응답 변수(response variable)의 가능한 값 만을 의미한다. 정답/오답 이상의 보다 복잡한 차원으로 측정되는 응답의 경우에, 그 값은 해당(또는 어떤) 최적 값으로 설정 되어야 한다. 최종적으로 이러한 최적 값이 정의되지 않은 응답의 경우에 correctResponse는 반드시 생략되어야 한다. 만약 전송시스템이 어떤 솔루션 디스플레이를 지원한다면, 이 솔루션은 응시자에게 올바른 응답 값(지정된 곳에)을 보여주어야 한다. 올바른 값이 보여질 때, 그 값은 반드시 응시자가 제출한 응답과는 확실하게 구별되어 보여져야(필요한 경우 완전히 숨김으로 처리) 한다.
포함(Contains) : mapping [0..1]
응답 처리를 목적으로 하는 기본 값 집합으로부터 숫자 값 집합까지의 매핑을 제공한다. 매핑 사용법에 관한 정보는 mapResponse를 참조
포함(Contains) : areaMapping [0..1]
areaMapping은 baseType 포인트를 갖는 변수 선언에만 존재하는 것으로, 매핑의 대체 형식을 제공한다. 이 형식은, 단일 값(즉, 단일 포인트) 매핑 대신 좌표공간의 영역에 대해 테스트를 수행한다.
클래스(Class) : correctResponse
관련 클래스(Associated Classes) : responseDeclaration, responseVariable
속성(Attribute) : interpretation [0..1]: string
정답 값을 사람이 읽을 수 있도록 해석한 것
포함(Contains) : value [1..*]
클래스(Class) : areaMapping
관련 클래스(Associated Classes) : responseDeclaration
포인트 값의 소스 집합으로부터 플로트(float) 값의 목표 집합까지 매핑을 생성하기 위해 사용되는 특수 클래스. 컨테이너를 매핑할 때, 그 결과는 목표(target) 집합에 있는 매핑된 값의 총합이 된다. 상세정보는 mapResponsePoint 참조. 이 속성은 매핑에 관한 유사명칭을 가진 속성들과 동일한 의미를 갖는다.
속성(Attribute) : lowerBound [0..1]: float
속성(Attribute) : upperBound [0..1]: float
속성(Attribute) : defaultValue [1]: float = 0
포함(Contains) : areaMapEntry [1..*] {ordered}
맵은 areaMapEntry 집합으로 정의되며, 각 areaMapEntry는 좌표공간의 영역을 단일 플로트(single float)에 매핑한다. 포인트를 매핑 할 때, 각 영역은 순서대로 테스트를 거치며, 영역이 겹치고 포인트가 교점에 위치하는 경우 우선적으로 처리된다
클래스(Class) : areaMapEntry
관련 클래스(Associated Classes) : areaMapping
속성(Attribute) : shape [1]: shape
영역의 형태(shape)
속성(Attribute) : coords [1]: coords
형태(shape)와 함께 해석되는 영역의 크기와 위치
속성(Attribute) : mappedValue [1]: float
매핑된 값
내장형(built-in) 응답 변수(response variable)는 numAttemps와 duration 두 가지이다. 암시적으로 선언되며 responseDeclaration 안에 나타날 수 없다.
모든 전송 엔진은 반드시 numAttempts 값을 유지해야 한다. 이것은 응시자에게 제시되는 각 문항에 대한 시도 횟수를 기록하는 단일 정수(single integer)이다. 값은 초기에는 0 이며, 시도를 시작 할 때 마다 1 만큼 증가한다.
시간 제한 문항(time dependent item)을 지원하는 시스템은 또한 duration의 값을 유지해야 한다. duration은 모든 시도(attempt)를 위한 모든 응시자 세션의 누적 시간(초 단위)을 기록하는 하나의 단일 플로트(single float)로서 정의된다. 즉, 문항 세션의 시작과 종료까지의 시간에서 세션이 중단 되었던 시간을 빼는 것이다. duration의 해석(resolution)은 반드시 적어도 1초이거나, 0.1초, 또는 미만이라야 한다. 만약 해석이 엡실론(epsilon)으로 표시되면, duration 각각의 값은 duration<=t< duration+epsilon의 범위 내에서 표현된다. 다시 말해, duration의 값은 절삭(truncated)된다.
시간 제약이 없는 문항의 duration 값은 어떠한 문항이나 시험-수준 표현((test-level expression)에서도 사용될 수 없다. 그럼에도 시스템은 그 값이 알려졌을 때 itemResults에 이를 반드시 보고해야 한다
클래스(Class) : outcomeDeclaration (variableDeclaration)
관련 클래스(Associated classes) : assessmentTest, assessmentItem
결과 변수는 결과선언에 의해서 선언된다. 이들 값은 선언 자체에서 주어지는 기본값에서 정해지거나, responseProcessing 진행 중 responseRule에 의해 설정된다.
응시자의 문항에 대한 전반적인 성과를 표현하기데 있어 숫자형의 결과 변수를 선언하는 문항은 그 변수에 대한 결과이름을 "SCORE" 로 사용해야 한다.
런타임 시, 결과 변수는 문항 세션(item session)의 일부로 시작된다. 이 변수의 값은 기본값으로 초기화 되거나 responseProcessing 도중에 설정된다. 만약 선언에서 기본값이 주어지지 않았다면, 0으로 초기화되는 숫자 형(numeric type)의 결과가 아닐 경우 결과 변수는 NULL로 초기화된다.
비적응형 문항의 경우, 결과 변수 값은 responseProcessing이 작동하기 전에 기본값으로 재설정된다. 적응형 문항의 경우, 결과 변수는 이전 응답 처리 작동 과정에서 해당 변수에 할당된 값을 계속 유지한다. 참조 : 응답 처리(Response Processing)
속성(Attribute) : view [*]: view
결과 변수가 제공될 것으로 예상되는 응시자(intended audience)에게는 보기(view) 속성이 설정 될 수 있다. 보기(view) 속성이 지정되지 않았다면, 결과는 모두 보기(all view)로 처리된다. 복합 문항(complex item), 예를 들어 적응형 문항 또는 복합 템플릿 등은 응시자에게 유용하지 않은 결과를 선언할 수도 있지만, 문항 또는 시험 세션 과정에서 유용한 중간 값 또는 기타 정보를 얻기 위해 사용할 만한 결과가 선언될 수도 있다. 이러한 변수는 (문항 결과의 경우) 저작자 또는 (시험 결과의 경우) testConstructor의 보기(view)로 정의되어야 한다. 시스템은 적절하게 선언되었다면, 선언된 보기(view)를 기초로 결과 보고(result report)에서 결과(outcomes)를 제외시킬 수도 있다.
속성(Attribute) : interpretation [0..1]: string
변수 값을 사람이 읽을 수 있도록 해석하는 것
속성(Attribute): longInterpretation [0..1]: uri
결과 변수 값에 대한 확장해석을 연결하는 선택적 링크(link)
숫자 유형을 갖도록 선언된 결과(outcomes)는, 특히 이 범위가 [0,1]과 다른 경우, normalMaximum 과 normalMinimum을 사용하여 가능한 값의 범위를 표시해야 한다.
속성(Attribute) : normalMaximum [0..1]: float
normalMaximum 속성은 숫자형 결과 변수의 최대 값을 선택적으로 정의하며, 반드시 양수의 값이어야한다. 속성이 주어진다면, 결과값은 normalMaximum으로 나눌 수 있고, 이후 [-1.0,1.0] 범위내의 정규화된 점수를 얻기 위해 (필요한 경우) 절삭될 수 있다. normalMaximum은 responseProcessing 또는 결과 변수 자체가 취할 수 있는 값에 영향을 주지 않는다.
속성(Attribute) : normalMinimum [0..1]: float
normalMinimum 속성은 숫자형 결과 변수의 최소값을 선택적으로 정의하며, 음수의 값을 가질 수 있다.
속성(Attribute) : masteryValue [0..1]: float
masteryValue 속성은 숫자형 결과 변수의 값을 선택적으로 정의하며, 이 값을 상회(above)할 경우 응시자는 측정(measured)하는 해당 영역(aspect)을 마스터(master) 된 것으로 간주한다.
포함(Contains) : lookupTable [0..1]
추상 클래스(Abstract class) : lookupTable
파생 클래스(Derived classes) : interpolationTable, matchTable
관련 클래스(Associated classes) : outcomeDeclaration
outcomeDeclation과 연계된 추상 클래스로, 선언된 값 집합에 있는 숫자 소스 값부터 단일 결과 값까지의 색인(lookup) 테이블을 생성하기 위해 사용된다. 색인표는 소스 숫자 값이 결과 값으로 어떻게 변환되는 가를 정의하는 유사한 매핑 방식과 반대되는 방식으로 작동한다. 반면 (응답)매핑은 응답 값이 목표(target)숫자 값에 매핑되는 방법을 정의한다.
이러한 변환은 lookupOutcomeValue 규칙을 이용하여 responseProcessing 또는 outcomeProcessing 내에서 일어난다.
속성(Attribute) : defaultValue [0..1]: valueType
매칭하는 표 입력(entry)이 발견되지 않을 때 사용되는 기본 결과 값이다. 생략된다면, NULL 값이 사용된다.
클래스(Class) : matchTable (lookupTable)
matchTable은 소스에 정확하게 매칭되는 첫 번째 matchTableEntry를 찾음으로서 소스 정수(integer)를 변환한다.
포함(Contains) : matchTableEntry [1..*]
클래스(Class) : matchTableEntry
관련 클래스(Associated classes): matchTable
속성(Attribute) : sourceValue [1]: integer
정확하게 매치되어야 하는 소스 정수(integer)
속성(Attribute) : targetValue [1]: valueType
매치되는 것을 찾았을 때 결과를 설정하기 위해 사용되는 목표 값
클래스(Class) : interpolationTable (lookupTable)
interpolationTable 은 소스 플로트(또는 정수)를 변환하는데, 이는 그 소스 값보다 작거나 또는 (includeBoundary를 조건으로하여) 그와 동일한 sourceValue를 갖는 첫 번째 interpolationTableEntry를 찾음으로서 수행된다.
예를 들어, 보간법 표(interpolation table)을 사용하면 처리되지 않은 원 점수(raw score)를 등급을 표시하는 식별자에 매핑할 수 있다. 이 표는 또한 단순한 원점수를 눈금 척도의 값으로 변환하는 것과 같이 숫자 변환에도 사용될 수 있다.
포함(Contains) : interpolationTableEntry [1..*]
클래스(Class) : interpolationTableEntry
관련 클래스(Associated classes) : interpolationTable
속성(Attribute) : sourceValue [1]: float
이 엔트리에 매치되는 소스값에 대한 하한가(lower bound)
속성(Attribute) : includeBoundary [0..1]: boolean = true
sourceValue의 정확한 매칭이 이 엔트리에 일치 하는가의 여부를 결정한다. 참(true)인 경우, 기본값이 되며, 그 값의 정확한 매칭은 해당 엔트리의 매칭으로 간주된다.
속성(Attribute) : targetValue [1]: valueType
매칭을 발견했을 때 결과를 설정하기 위해 사용되는 목표값
내장형(built-in) 결과 변수는 하나, completionStatus이다. 암시적으로 선언되며, outcomeDeclaration 내에서 나타날 수 없다.
전송 엔진은 일종의 단일 식별자(single identifier)인 내장형(built-in) 결과 변수 값 completionStatus 를 반드시 유지해야 한다. 이 변수는 지정된 값인 "not_attempted"로 시작한다. 첫 번째 시도에서, 이 값은 "알수없음(unknown)" 으로 변경된다. 이후에 responseProcessing 내의 setOutcomeValue 규칙에 의해 다른 값으로 설정되지 않는 한, 문항 세션(item session) 기간 동안 그 값으로 유지된다. 허용된 값은 모두 네 가지 이다. 'completed', 'incompleted', 'not_attempted', 'unknown'. 이들 값 중 어느 하나라도 응답 처리 과정 중에 설정될 수 있으며, 각 의미의 정의는 [CMI]를 참조한다. 만약, 적응형 문항(adaptive item)이 completionStatus를 'completed' 로 설정했다면, 해당 세션은 반드시 종료단계에 있어야 하지만, 문항 세션(item session)은 종료 전에 완료 신호를 기다릴 의무가 없으며, 문항 세션(item session)은 응시자의 직접적인 요청에 따라서나 시간초과 또는 여러 다른 예외적인 상황으로 인해 종료될 수 있다. 적응형 문항(adaptive Item)은 반드시 적절한 값을 유지해야 하며, completionStatus를 'completed' 로 설정하여 상호작용 주기, 응답 처리, 피드백을 멈추는 시점을 나타내야 한다. 비적응형 문항(non-adaptive item)은 completionStatus에 대한 값을 설정할 의무는 없으나 그렇게 할 수 있다. 전송 엔진은 [CMI]를 사용하여 소통할 때 completionStatus 값을 사용하도록 권장된다. 추가정보는 같이 제공되는 통합가이드 참조
클래스(Class) : itemBody (bodyElement)
관련 클래스(Associated classes) : assessmentItem
포함(Contains) : block [*]
문항 본체(item body)는 문자, 그래픽, 미디어 객체, 상호작용과 같이 문항의 내용과 문항의 구성정보를 설명하는 것들을 담고 있다. 내용은 스타일시트 정보와 결합시켜 제시되며, 뚜렷하게 또는 암시적으로, 전송 또는 저작 시스템의 기본 스타일 규칙을 사용한다.
본체(body)는 관련 문항 세션(item session)이 상호작용 단계에 있을 때, 응시자에게 반드시 제시되어야 한다. 이 단계에서 응시자는 보여지는 각각의 interaction과 커뮤니케이션하여, 관련 응답 변수(response variable) 값을 설정 또는 업데이트 할 수 있어야 한다. 이 본체(body)는 응답 세션이 종료 또는 검토 단계에 있을 때 응시자에게 제시될 수 있다. 이들 단계에서 비록 응시자의 응답은 보여질 수 있더라도, interaction은 반드시 중지된 상태라야 하며 이는 응시자가 관련 응답 변수(response variable) 값을 설정 또는 업테이트하는 것을 방지하기 위해서 이다. 최종적으로, 본체(body)는 솔루션 단계에서 응시자에게 제시될 수 있는데, 이 경우는 응답 변수(response variable)의 올바른 값이 보여져야 하며 관련한 상호작용은 중단된다.
이 표준이 도입한 콘텐츠 모델은 [XHTML]에서 직접 도출된 개념들을 많이 사용하고 있다. 실제로, 표준의 이 부분이 XHTML 프로파일을 정의한다. XHTML에서 정의된 요소들 중 오직 일부만이 assessmentItem에서 허용되며, 이들 중 일부는 그 속성에 추가적인 제약이 주어진다. 이 표준 내에서 명확하게 정의된 XHTML로 정의된 이들 요소만 사용될 수 있다. 상세정보는 XHTML 요소 참조. 최종적으로, 이 표준은 몇 가지 새로운 요소를 정의하는데, 이는 interaction을 표현하기 위해, 그리고 통합적 피드백(integrated feedback)의 디스플레이와와 정의된 하나 또는 그 이상의 콘텐츠 보기(view)에 의해 제한되는 콘텐츠를 제어하기 위해 사용된다.
추상 클래스(Abstract class) :bodyElement
파생 클래스(Derived classes) :
atomicBlock, atomicInline, caption, choice, col, colgroup, div, dl, dlElement, hr, interaction, itemBody, li, object, ol, printedVariable, prompt, simpleBlock, simpleInline, table, tableCell, tbody, templateElement, tfoot, thead, tr, ul
문항 콘텐츠 모델 안의 모든 콘텐츠 객체가 갖는 루트 클래스는 bodyElement 이다. 이는 콘텐츠 모델의 모든 요소에 공통적으로 있는 속성의 갯수를 지정한다.
속성(Attribute) : id [0..1]: identifier
본체(body)를 구성하는 요소의 아이디(id)는 문항 내에서 반드시 유일한 것이어야 한다.
속성(Attribute) : class [*]: styleclass
클래스는 개별 본체(body) 요소에 할당될 수 있다. 다중 클래스 이름이 주어질 수 있다. 이들 클래스 이름은 해당 요소가 클래스 목록의 구성원임을 구별해준다. 클래스 구성원(membership)은, 저작시스템이 이 표준으로 차별화할 수 없는 콘텐츠 객체를 구별하기 위해 사용될 수 있다. 이 정보는 일반적으로 관련 스타일시트 내의 정의를 기초로 다른 포맷팅을 적용하기 위해 사용된다.
속성(Attribute) : lang [0..1]: language
요소의 주 언어를 말한다. 이 속성은 선택사항이며 대개의 경우 특정 구성요소를 둘러싸는 상위의 (enclosing) 요소로부터 상속받는다.
속성(Attribute) : label [0..1]: string256
레이블(label) 속성은 저작 시스템에게, 어플리케이션에 특화된 데이터를 갖는 콘텐츠 모델의 요소를 레이블링(labeling)하는 매커니즘을 제공한다. 만약 문항이 이 레이블을 사용한다면 관련 toolName 과 toolVersion속성을 위한 값 또한 반드시 제공되어야 한다.
콘텐트 모델의 기반을 이루는 것들은 본체(body) 요소를 (개별 그룹을 정의하는) 범주(category)들로 그룹화하기 위해 사용되는 여러 추상 클래스들이다.
추상 클래스(Abstract class) : objectFlow
파생 클래스(Derived classes) : flow, param
관련 클래스(Associated classes) : object
객체(object) 내에 나타낼 수 있는 요소
추상 클래스(Abstract class) :inline
파생 클래스(Derived classes) : inlineInteraction, inlineStatic
관련 클래스(Associated classes) : simpleInline, dt, caption, atomicBlock
단락의 콘텐츠처럼 텍스트의 길이처럼 행동하는 요소
추상 클래스 :block
파생 클래스(Derived classes) :blockInteraction, blockStatic, customInteraction, positionObjectStage
관련 클래스(Associated classes) : itemBody, simpleBlock
단락, 표 등 동일한 텍스트에 구조를 제공하는 요소. 대부분의 요소는 인라인(inline) 이거나 블럭(block) 이다.
추상 클래스(Abstract class) : flow (objectFlow)
파생 클래스(Derived classes) : blockInteraction, customInteraction, flowStatic, include, inlineInteraction
관련 클래스(Associated classes) : tableCell, div, dd, li
블럭 유형(block-type) 과 인라인 유형(inline-type) 요소를 포함하는 구성요소로 문항, 표 셀, 등에 나타날 수 있는 요소
속성(Attribute) : base [0..1]: uri
이 객체 범위에 대한 관련 URI 해석(resolving)을 위한 기반을 변경하기 위해 사용되는 선택적 URI. 관련 URI가 문항 구성요소(item fragment)의 일부로 포함된 경우, 각별한 주의가 필요하다. 추가정보는 문항 및 테스트 구성요소(item and test fragments) 참조
추상 클래스(Abstract class) :inlineStatic (inline)
파생 클래스(Derived classes) :
atomicInline, gap, hottext, math, object, printedVariable, simpleInline, templateInline, textRun
관련 클래스(Associated classes) : hottext, prompt, templateInline
상호작용을 제외하는 인라인(inline) 하위 클래스
추상 클래스(Abstract class) :blockStatic (block)
파생 클래스(Derived classes) :atomicBlock, div, dl, hr, math, ol, simpleBlock, table, templateBlock, ul
관련 클래스(Associated classes) : templateBlock, gapMatchInteraction, hottextInteraction
상호작용을 제외하는 블럭(block) 하위 클래스
추상 클래스 :flowStatic (flow)
파생 클래스(Derived classes) :
atomicBlock, atomicInline, div, dl, hottext, hr, math, object, ol, printedVariable, simpleBlock, simpleInline, table, templateBlock, templateInline, textRun, ul
관련 클래스(Associated classes) :
simpleAssociableChoice, testFeedback, modalFeedback, simpleChoice
상호작용을 제외하는 플로우(flow) 하위 클래스
다음 클래스들은 XHTML이 사용하는 몇 가지 공통 요소 유형이다.
추상 클래스(Abstract class) :simpleInline (bodyElement, flowStatic, inlineStatic)
파생 클래스(Derived classes) :
a, abbr, acronym, b, big, cite, code, dfn, em, feedbackInline, i, kbd, q, samp, small, span, strong, sub, sup, tt, var
포함(Contains) : inline [*]
추상 클래스(Abstract class) :simpleBlock (blockStatic, bodyElement, flowStatic)
파생 클래스(Derived classes) : blockquote, feedbackBlock, rubricBlock
포함(Contains) : block [*]
추상 클래스(Abstract class) :atomicInline (bodyElement, flowStatic, inlineStatic)
파생 클래스(Derived classes) : br, img
추상 클래스(Abstract class) :atomicBlock (blockStatic, bodyElement, flowStatic)
파생 클래스(Derived classes) : address, h1, h2, h3, h4, h5, h6, p, pre
포함(Contains) : inline [*]
클래스(Class) : textRun (flowStatic, inlineStatic, textOrVariable)
textRun은 글자들의 단순한 흐름이다. 콘텐츠 모델의 모든 다른 요소와는 달리, textRun은 bodyElement의 하위클래스가 아니다. textRun에 속성을 부여하기 위해서는 범위(span) 요소를 반드시 사용해야 한다.
[XHTML]에서 도출된 콘텐츠 모델의 구조적 요소들은 [XHTML_MOD]에 제시된 분류에 따라 그룹지어져 문서화된다. 여기 목록화된 속성들만이 (부모 클래스에서 상속받은 속성들을 포함하여) 사용될 수 있다. 기본적으로 요소 및 속성들은 그에 해당하는 [XHTML]내부의 요소 및 속성과 동일한 해석 및 제약요건을 갖는다.
클래스(Class) : abbr (simpleInline)
XHTML에 의해 정의된 타이틀 속성이 지원되지 않음에 유의.
클래스(Class) : acronym (simpleInline)
XHTML에 의해 정의된 타이틀 속성이 지원되지 않음에 유의.
클래스(Class) : address (atomicBlock)
클래스(Class) : blockquote (simpleBlock)
속성(Attribute) : cite [0..1]: uri
클래스(Class) : br (atomicInline)
클래스(Class) : cite (simpleInline)
클래스(Class) : code (simpleInline)
클래스(Class) : dfn (simpleInline)
클래스(Class) : div (blockStatic, bodyElement, flowStatic)
포함(Contains) : flow [*]
클래스(Class) : em (simpleInline)
클래스(Class) : h1 (atomicBlock)
클래스(Class) : h2 (atomicBlock)
클래스(Class) : h3 (atomicBlock)
클래스(Class) : h4 (atomicBlock)
클래스(Class) : h5 (atomicBlock)
클래스(Class) : h6 (atomicBlock)
클래스(Class) : kbd (simpleInline)
클래스(Class) : p (atomicBlock)
클래스(Class) : pre (atomicBlock)
비록 pre가 atomicBlock에서 상속되었지만, pre는 직접이든 간접이든 img, object, big, small, sub, sup와 같은 객체들을 포함하지 않는다.
클래스(Class) : q (simpleInline)
속성(Attribute) : cite [0..1]: uri
클래스(Class) : samp (simpleInline)
클래스(Class) : span (simpleInline)
클래스(Class) : strong (simpleInline)
클래스(Class) : var (simpleInline)
클래스(Class) : dl (blockStatic, bodyElement, flowStatic)
포함(Contains) : dlElement [*]
추상 클래스(Abstract class) :dlElement (bodyElement)
파생 클래스(Derived classes) :dd, dt
관련 클래스(Associated classes) : dl
클래스(Class) : dt (dlElement)
포함(Contains) : inline [*]
클래스(Class) : dd (dlElement)
포함(Contains) : flow [*]
클래스(Class) : ol (blockStatic, bodyElement, flowStatic)
포함(Contains) : li [*]
클래스(Class) : ul (blockStatic, bodyElement, flowStatic)
포함(Contains) : li [*]
클래스(Class) : li (bodyElement)
관련 클래스(Associated classes) : ul, ol
포함(Contains) : flow [*]
클래스(Class) : object (bodyElement, flowStatic, inlineStatic)
관련 클래스(Associated classes) :positionObjectStage, graphicInteraction, positionObjectInteraction, mediaInteraction, drawingInteraction, gapImg
포함(Contains) : objectFlow [*]
속성(Attribute) : data [1]: string
data 속성은 객체와 관련된 데이터의 위치를 찾기 위한 URI 를 제공한다.
속성(Attribute) : type [1]: mimeType
속성(Attribute) : width [0..1]: length
속성(Attribute) : height [0..1]: length
클래스(Class) : param (objectFlow)
속성(Attribute) : name [1]: string
객체가 해석한 파라미터 이름
속성(Attribute) : value [1]: string
이름 붙여진 파라미터 객체로 넘어가기 위한 값. 이 값은 템플릿 변수 확장의 영향을 쉽게 받는다. 만약 변수가 "true"로 설정된 paramVariable과 함께 선언된 템플릿 변수의 이름인 경우, 템플릿 변수 값은 주어진 파라미터 값처럼 객체로 넘어간다.
파라미터 값처럼 템플릿 변수를 확장할 때, 식별자(identifier), 문자열(string), uri 이외의 유형들은 반드시 문자열로 변환되어야 한다. 숫자 유형은 적절한 경우 "%i" 또는 "%G" 형식을 사용하여 문자열로 변환된다. (숫자 데이터 포맷팅에 관한 논의는 printedVariable 참조). 기본형 논리(boolean) 값은 "true" 또는 "false" 중 하나의 문자열로 확장된다. 기본형 포인트(point) 값은 "%i" 포맷을 사용하여, 수평좌표, 수직좌표의 순서로 두 개의 공간분리 정수들까지 확대된다. 기본형 쌍(pair) 값과 방향 쌍(directedPair) 값은 두 개의 식별자로 구성된 문자열로 공간을 분리하여 전환된다. 기본형 실행시간(duration) 값은 "%G" 포맷을 사용하여 변환된다. 기본형 파일 값은 파라미터 확장에서 사용될 수 없다.
만약 값 유형(valuetype)이 REF 라면, 템플릿 변수는 반드시 기본형
uri 여야 한다.
속성(Attribute) : valuetype [1]: paramType = DATA
이 표준은 DATA와 REF의 사용을 지원하지만 OBJECT는 지원하지 않는다.
속성(Attribute) : type [0..1]: mimeType
값 유형(valuetype) REF 값 유형을 제공하기 위해 사용된다.
열거(Enumeration) : paramType
DATA
REF
클래스(Class) : b (simpleInline)
클래스(Class) : big (simpleInline)
클래스(Class) : hr (blockStatic, bodyElement, flowStatic)
클래스(Class) : i (simpleInline)
클래스(Class) : small (simpleInline)
클래스(Class) : sub (simpleInline)
클래스(Class) : sup (simpleInline)
클래스(Class) : tt (simpleInline)
클래스(Class) : caption (bodyElement)
관련 클래스(Associated classes) : table
포함(Contains) : inline [*]
클래스(Class) : col (bodyElement)
관련 클래스(Associated classes) : table, colgroup
속성(Attribute) : span [0..1]: integer = 1
클래스(Class) : colgroup (bodyElement)
관련 클래스(Associated classes) : table
속성(Attribute) : span [0..1]: integer = 1
포함(Contains) : col [*]
클래스(Class) : table (blockStatic, bodyElement, flowStatic)
속성(Attribute) : summary [0..1]: string
포함(Contains) : caption [0..1]
포함(Contains) : col [*]
표가 직접적으로 col을 포함한다면, 표는 모든 colgroup 요소를 포함할 수 없다.
포함(Contains) : colgroup [*]
표가 colgroup을 포함한다면, 표는 모든 col 요소를 직접적으로 포함할 수 없다
포함(Contains) : thead [0..1]
포함(Contains) : tfoot [0..1]
포함(Contains) : tbody [1..*]
추상 클래스(Abstract class) :tableCell (bodyElement)
파생 클래스(Derived classes) : td, th
관련 클래스(Associated classes) : tr
XHTML에서, 표 셀은 th 또는 td 중의 하나로 대표되며, 이들은 다음의 속성과 콘텐츠 모델을 공유한다:
속성(Attribute) : headers [*]: identifier
속성(Attribute) : scope [0..1]: tableCellScope
속성(Attribute) : abbr [0..1]: string
속성(Attribute) : axis [0..1]: string
속성(Attribute) : rowspan [0..1]: integer
속성(Attribute) : colspan [0..1]: integer
포함(Contains) : flow [*]
열거(Enumeration) : tableCellScope
row
col
rowgroup
colgroup
클래스(Class) : tbody (bodyElement)
관련 클래스(Associated classes) :table
포함(Contains) : tr [1..*]
클래스(Class) : td (tableCell)
클래스(Class) : tfoot (bodyElement)
관련 클래스(Associated classes) : table
포함(Contains) : tr [1..*]
클래스(Class) : th (tableCell)
클래스(Class) : thead (bodyElement)
관련 클래스(Associated classes) : table
포함(Contains) : tr [1..*]
클래스(Class) : tr (bodyElement)
관련 클래스(Associated classes) : thead, tbody, tfoot
포함(Contains) : tableCell [1..*]
클래스(Class) : img (atomicInline)
속성(Attribute) : src [1]: uri
속성(Attribute) : alt [1]: string256
속성(Attribute) : longdesc [0..1]: uri
속성(Attribute) : height [0..1]: length
속성(Attribute) : width [0..1]: length
클래스(Class) : a (simpleInline)
비록 a 가 simpleInline에서 인계되었지만, 직접이든 간접이든 또 다른
a 를 포함할 수 없다.
속성(Attribute) : href [1]: uri
속성(Attribute) : type [0..1]: mimeType
[MathML]은 XML을 이용한 수리적 기법을 표시하는 마크업 언어를 정의한다. MathML의 주목적은 수학적 표현을 다른 문서, 특히 HTML 문서에 끼워넣기 위해 필요한 언어를 제공한다.
클래스(Class) : math (blockStatic, flowStatic, inlineStatic)
math class는 외적으로는 MathML 표준이 정의한다. math class는 문항의 콘텐츠 모델 안에서 인라인(inline), 블럭(block), 흐름(flow) 요소로서 기능할 수 있다.
문항 템플릿을 생성할 때, 수학적 표현요소를 다양하게 변화시키는 것이 바람직한 경우가 많다. 비록, math 객체 안에 그 목적으로 정의된 printedVariable과 같은 객체를 끼워 넣는 것이 불가능하지만, 이 장에서 설명하는 기술을 사용하여 유사한 효과를 달성할 수 있다.
MathML에서 숫자는 표현(presentation or content representation)을 위해 <mn> 이나 <cn> 요소 중의 한 가지로만 표현된다. 마찬가지로, <mi>와 <ci>는 식별자를 다시 기술한다. 만약 mathVariable이 템플릿 변수의 선언에서 설정된다면, 템플릿 변수의 이름과 일치하는 <mi>와 <ci>의 모든 경우는 템플릿 변수값을 콘텐츠로 하여 반드시 <mn>과 <cn>으로 각각 교체되어야 한다.
템플릿 변수 확장 기술은 MathML의 다른 요소까지로 향후 확장될 가능성이 있다.
이 표준은 assessmentItem 콘텐츠가 문항 세션(item session)의 단계에 따라 달라지게 만드는 두 가지 방법을 정의한다.
첫 번째 방법은 결과 변수 값을 기초로 한다.
추상 클래스(Abstract class) :feedbackElement
파생 클래스(Derived classes) : feedbackBlock, feedbackInline
속성(Attribute) : outcomeIdentifier [1]: identifier
식별자 기본형을 갖고 있어야 하며 단일(single) 혹은 다중 중복성(multiple cardinality)이어야 하는 결과 변수의 식별자(identifier). feedbackElement의 가시성은 responseProcessing 중에 이 결과 변수에 값 (또는 값들)을 할당 함으로서 제어된다.
속성(Attribute) : showHide [1]: showHide = show
showHide 속성은 feedbackElement의 가시성이 어떻게 제어되는 가를 결정한다. 만약 보이기(show)로 설정되면, 피드백은 숨김(hide)이 기본값이 되고, 관련 결과 변수가 식별자 속성값과 일치하거나, 또는 이를 포함하는 경우에 보이기(show)가 된다. 만약 숨김(hide)으로 설정되면, 피드백은 보이기(show)가 기본값이 되고, 관련 결과 변수가 식별자 속성값과 일치하거나 또한 이를 포함하는 경우에 숨김(hide)이 된다.
속성(Attribute) : identifier [1]: identifier
showHide 속성과 함께 피드백 가시성을 결정하는 식별자.
비적응형(non-adaptive Item) 문항의 일부를 구성하는 피드백 요소는 직접 또는 간접적으로든 반드시 interaction 객체를 포함해서는 안된다.
interaction이 숨겨진 피드백 요소에 포함된 경우, 이 interaction 또한 숨겨져야 한다. 응시자는 관련 응답 변수(response variable) 값을 설정 또는 업데이트 할 수 없다.
열거(Enumeration) : showHide
show
hide
클래스(Class) : feedbackBlock (feedbackElement, simpleBlock)
클래스(Class) : feedbackInline (feedbackElement, simpleInline)
클래스(Class) : rubricBlock (simpleBlock)
관련 클래스(Associated classes) : assessmentSection
속성(Attribute) : view [1..*]: view
rubricBlock의 콘텐츠가 보여지게 될 view
rubricBlock은, 문항을 보고 있는 한명 이상의 행위자에게 지침을 표현하는 assessmentItem의 itemBody 일부를 식별한다. 비록, rubricBlock이 simpleBlocks으로 정의되지만, rubricBlock은 반드시 interaction을 포함해야 한다.
중첩된 bodyElement 또는 rubricBlock 의 가시성은 가장 바깥쪽에 있는 요소에 의해 결정된다. 달리 말하면, 만약 한 요소가 숨김으로 결정되면, 그 요소의 모든 콘텐츠가 조건적으로 가시성을 갖는 요소들을 포함해 숨김으로 처리되는데, 이 때문에 조건들이 만족되며. 그 반대의 경우 콘텐츠가 보이게 된다.
클래스(Class) : printedVariable (bodyElement, flowStatic, inlineStatic, textOrVariable)
속성(Attribute) : identifier [1]: identifier
반드시 정의되었어야 하고, 단일 중복성(single cardinality)를 갖는 결과 변수 또는 템플릿 변수이다. 응답 변수(response variable) 값은 직접적으로 프린트 될 수 없는데, 이는 응시자가 의무적으로 실행하는 interaction을 통해 그 값이 응시자에게 암묵적으로 알려졌기 때문이다. 필요한 경우, 이 값들은 responseProcessing 중에 결과로 지정될 수 있으며, 응시자에게는 적절한 피드백 단계에서만 보여지는 bodyElement 일부로 화면에 나타날 수 있다.
만약 변수값이 NULL 인 경우, 요소는 무시된다.
다양한 baseType 문자열은 단순한 textRun으로 처리된다.
baseType 정수(integer) 또는 플로트(float) 변수는 아래 적힌 포맷팅 규칙을 사용해 textRun으로 처리된다. 플로트 값은 e, E, f, g, G, r, R 스타일로만 포맷되어야 한다.
baseType 실행시간(duration)의 변수는, 기간을 초 단위로 나타내며 플로트로 처리된다.
속성(Attribute) : format [0..1]: string256
숫자값을 문자열로 변환시킬 때 사용하는 포맷 변환 지정자. 상세설명은 숫자 포맷 규칙 참조
속성(Attribute) : base [0..1]: integer = 10
정수변수를 i 변환타입 코드를 갖는 문자열로 변환시킬 때 사용하는 숫자 베이스
baseType 파일(file) 변수는 사용자의 파일열기 컨트롤(대화상자)을 사용하여 변경된다. 이 컨트롤은 그 파일과 관련된 이름이 있는 경우 보여야 한다.
baseType uri 변수는 사용자가 식별된 소스 열기 컨트롤을 사용하여 변경된다. 예를 들어, URL 에서 하이퍼텍스트 링크 따라가기 등이다.
추상 클래스(Abstract class) :textOrVariable
파생 클래스(Derived classes) : printedVariable, textRun
관련 클래스(Associated classes) : gapText
예를 들어 inlineChoice 텍스트 등과 같이, 평문(plain text_만 허용되는 문맥(context) 내의 변수값 대체를 가능하게 하기 위해 사용되는 추상 클래스
포맷 속성의 형식(syntax)은 포맷 변환 지정자를 기초로 하는데, 이는 printf 및 관련기능을 함께 사용하기 위해 C 프로그램 언어 [ISO_9899]에서 정의된 것이다.
각 변환지정자는 '%' 문자로 시작하며, 그 뒤를 이어서 0 이거나 보다 많은 flag 문자(#, 0, -, " " [space] and +), 최소의 필드 넓이를 표시하는 선택적 숫자열, 선택적 소수점 아래의 자리수(precision) (a 와 뒤를 잇는 0 또는 보다 많은 숫자로 구성됨), 마지막으로 변환타입 코드 E, e, f, G, g, r, R, i, o, X, x 중의 하나가 붙는다. 다만 예외는 i 와 r/R 인데, 여기서 i 는 C 표준에 따라 해석되며, 기본 속성을 사용하는 10 이외의 기본(base) 내에 있는 숫자들을 포맷하기 위해 사용될 수 있다. r/R은 g/G 와 동일한 방식으로 소수점 아래의 자리수에 의해 주어지는 중요한 수들의 숫자로 반올림되는데, 단 예외는 과학 형식(scientific format)이 사용될 수 있는 경우는 중요한 수들의 요청 숫자가 소수점 왼쪽의 숫자 보다 작을 때 뿐이다.
클래스(Class) : stylesheet
관련 클래스(Associated classes) :assessmentItem
assessmentItem 를 갖는 외부 스타일시트를 연계하기 위해 사용된다.
속성(Attribute) : href [1]: uri
외부 스타일시트의 식별자 또는 위치
속성(Attribute) : type [1]: mimeType
외부 스타일시트 유형
속성(Attribute) : media [0..1]: string
스타일시트가 적용되는 미디어를 설명하는 선택적 미디어 기술자
속성(Attribute) : title [0..1]: string
스타일시트를 위한 선택적 타이틀
추상 클래스(Abstract class) :interaction (bodyElement)
파생 클래스(Derived classes) : blockInteraction, customInteraction, inlineInteraction, positionObjectInteraction
interaction은 응시자가 문항과 상호작용하도록 해준다. interaction을 통해, 응시자는 응답을 선택 또는 작성할 수 있다. 응시자의 응답은 응답 변수(response variable) 안에 저장된다. 각 interaction은 적어도 하나의 응답 변수(response variable)와 연계되어 있다.
속성(Attribute) : responseIdentifier [1]: identifier
interaction과 연계된 응답 변수(response variable)
interaction의 상태는 관련 응답 변수(response variable) 값 설정을 위해 사용된다. 관련 응답 변수(response variable) 선언은 응답 변수(response variable)가 특정 baseType 과 다중성(cardinality)을 갖도록 만든다. 일부 interaction은 허용 가능한 응답 설정에 추가적인 제약을 두는데, 예를 들어 choiceInteraction 안에서 고를 수 있는 최소 또는 최대 선택 숫자를 제한하는 것이다. 어떤 상호작용적인 전송 엔진에서는, 응시자가 문항과 상호작용하는 동안 이들 제약을 확인하는 것이 가능하다. 응시자는 시험을 진행하면서 어떠한 문항이 유효응답을 갖고 있으며, 주의를 필요로 하는 가를 보여주는 일종의 지침을 볼 수 있거나, 또는 유효 응답이 선택/작성될 때까지 시험을 진행할 수 없을 지도 모른다. (시험 중 이러한 운영모드를 실행하는 방법에 관해서는 validateResponses 참조). 일부 경우, 전송 엔진은 유효 응답의 특정 유형을 제거하는 상호작용적인 제어를 제공하기도 한다. 예를 들어, 선택 횟수를 설정하여 interaction에 지정된 최대치를 초과하지 못하도록 제한하는 것이다.
응시자의 interaction 상태가 추가적인 제약을 만족시키지 못하는 상황이 벌어 질 수 있다는 점을 감안할 때, 문항 저작자는 응답 처리 규칙(제공되는 경우)이 유효하지 않은 응답 변수(response variable)가 확실하게 처리될 수 있도록 만들어야 한다.
추상 클래스(Abstract class) :inlineInteraction (flow, inline, interaction)
파생 클래스(Derived classes) : endAttemptInteraction, inlineChoiceInteraction, textEntryInteraction
인라인(inline)을 나타내는 상호작용
추상 클래스(Abstract class) :blockInteraction (block, flow, interaction)
파생 클래스(Derived classes) : associateInteraction, choiceInteraction, drawingInteraction, extendedTextInteraction, gapMatchInteraction, graphicInteraction, hottextInteraction, matchInteraction, mediaInteraction, orderInteraction, sliderInteraction, uploadInteraction
콘텐츠 모델의 블럭(block) 처럼 행동하는 상호작용. 상호작용 대부분이 이 유형이다.
포함(Contains) : prompt [0..1]
상호작용을 위한 선택적 프롬프트
클래스(Class) : prompt (bodyElement)
관련 클래스(Associated classes) : blockInteraction
포함(Contains) : inlineStatic [*]
프롬프트는 반드시 모든 중첩된 interaction을 포함해야 한다.
추상 클래스(Abstract class) :choice (bodyElement)
파생 클래스(Derived classes) : associableChoice, hotspotChoice, hottext, inlineChoice, simpleChoice
하나 이상의 사전 정의된 선택사항들을 선택하는 작업을 포함하는 많은 상호작용. 이들 선택사항은 모두 다음과 같은 공통된 속성을 지닌다.
속성(Attribute) : identifier [1]: identifier
선택사항 식별자. 이 식별자는 다른 선택사항 또는 문항 변수(item variable)에 의해 사용될 수 없다.
속성(Attribute) : fixed [0..1]: boolean = false
선택사항에서 fixed 속성이 참(true)이면 바로 상위에서 포함(enclosing)하고 있는 interaction이 선택의 셔플링(shuffling)을 지원한다 하더라도 interaction내에서 이 선택사항의 위치는 전송 엔진에 의해 절대 변경되어서는 안된다. 만약, 값이 정해지지 않은 경우에는 선택사항의 순서를 자유롭게 변동시킬 수 있다.
문항 템플릿(item template)에서, 선택사항의 가시성은 템플릿 처리과정에서 관련 템플릿 변수값의 설정을 통해서 제어될 수 있다. 문항 템플릿에 관한 추가내용은 문항 템플릿(item template) 참조
속성(Attribute) : templateIdentifier [0..1]: identifier
기본형 식별자(identifier)를 가져야 하며 반드시 단일(single) 또는 다중 중복성(multiple cardinality) 이라야만 하는 템플릿 변수 식별자. 연계 interaction이 문항 템플릿의 일부인 경우, 식별된 템플릿 변수 값은 선택사항의 가시성 제어를 위해 사용된다. 선택사항이 숨김 상태이면, 이는 선택될 수 없고, 그 내용 또한 다른 규정이 없는 한 응시자가 볼 수 없다.
속성(Attribute) : showHide [0..1]: showHide = show
showHide 속성은 선택사항의 가시성을 제어하는 방법을 결정한다. 보기(show) 로 설정되어 있으면, 선택사항은 기본값으로 숨김처리 되어 있다가, 관련 템플릿 변수가 선택사항 식별자와 일치, 또는 이를 포함하는 경우에만 보여지게 된다. 숨기기(hide) 로 설정된 경우, 선택사항은 기본값을 보이도록 했다가, 템플릿 변수가 선택사항 식별자와 일치, 또는 이를 포함하는 경우에만 숨김으로 처리된다.
추상 클래스(Abstract class) :associableChoice (choice)
파생 클래스(Derived classes) : associableHotspot, gap, gapChoice, simpleAssociableChoice
사전 정의된 선택사항을 쌍(pair)으로 묶기를 포함하는 다른 여러 interaction에 관한 것이다. 이들 선택사항은 모두 다음의 공통된 속성을 지닌다:
속성(Attribute) : matchGroup [0..*]: identifier
해당 선택사항과 관련이 있는 선택사항 집합. 그 외의 다른 모든 선택은 제외된다. matchGroup이 주어지지 않았거나 또는 비어 있는 경우, 이 선택과 관련한 모든 다른 선택사항들은 자체의 매칭 제약에 영향을 반든다.
클래스(Class) : choiceInteraction (blockInteraction)
choiceInteraction은 응시자에게 선택사항들을 제시한다. 응시자가 할 일은 하나 또는 이상의 선택 문항을 고르는 것이며, maxChoices의 최대치까지 선택할 수 있다. 이에 해당하는 최소 선택 숫자는 없다. 선택된 문항이 없으면 상호작용은 항상 초기화된다.
choiceInteraction 은 반드시 식별자 baseType과 단일(single) 혹은 다중 중복성(multiple cardinality) 을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 인 경우, 전송 엔진은 반드시 fixed 속성에 쉽게 영향을 받는 선택 문항의 순서를 무작위로 만들어야 한다.
속성(Attribute) : maxChoices [1]: integer = 1
응시자가 고를 수 있는 선택 문항의 최대 숫자. maxChoices 가 0인 경우, 제약이 없는 것이며, 1 (또는 0)보다 큰 경우, interaction은 반드시 다중 중복성(multiple cardinality)을 갖는 응답에 바인딩되어 있어야 한다..
속성(Attribute) : minChoices [0..1]: integer = 0
유효 응답을 만들기 위해서 응시자가 반드시 선택해야 하는 선택 문항의 최소 숫자. maxChoices이 0인 경우, 응시자는 선택 문항을 선택할 의무가 없다. minChoice는 maxChoices가 설정한 제한 숫자보다 작거나 또는 같아야 한다.
포함(Contains) : simpleChoice [1..*]
사용자에게 보여지는 선택 문항의 순차적(ordered) 목록. shuffle이 참(true)으로 되어 있지 않는 한, 이 순서는 사용자에게 제시되는 순서 그대로이다.
클래스(Class) : orderInteraction (blockInteraction)
orderInteraction에서, 응시자가 할 일은 선택 문항을 기록하는 것이다. 선택 문항이 초기에 보여지는 순서는 중요하다. 기본적으로 응시자의 과제는 모든 선택 문항을 배열하는 것이지만, 선택 문항의 하위세트는 maxChoices와 minChoices 속성을 사용하여 요청할 수 있다. 지정된 경우, 응시자는 반드시 선택 문항의 하위세트를 선택하고 그에 대한 순서 배열을 지정하는 것이다.
orderInteraction 과 관련이 있는 응답 변수(response variable)에 대한 기본값이 지정되었다면, 그 값은 여기에 지정된 선택 문항의 순서를 덮어쓰기(override)하기 위해 사용되어야 한다.
본래 orderInteraction을 답안이 제시되지 않은 단계에서 변경하는 것이 어려울 수 있다. 특히 모든 선택사항이 순차적으로 되어 있는 기본적인 경우 어려울 수 있다. 실행자들은 응답 변수(response variables) 절에서 설명된 기본값 사용에 관한 이와 같은 문제에 대하여 명심해야 한다.
orderInteraction은 baseType 식별자와 순차적 다중성(ordered cardinality) 만을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
포함(Contains) : simpleChoice [1..*]
사용자에게 보여지는 선택 문항의 순차적 목록. shuffle이 참(true)이 아닌 한, 그 순서는 사용자에게 제시된 최초의 순서를 유지해야 한다.
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 인 경우, 전송 엔진은 반드시 최초에 제시되는 선택 문항의 순서를 무작위로 만들어야 하는데, 이들 선택 문항은 fixed 속성에 영향을 받기 쉽다.
속성(Attribute) : minChoices [0..1]: integer
interaction에 대한 유효 응답을 만들기 위해서 응시자가 반드시 선택해서 배열해야 하는 선택 문항의 최소 숫자. 지정된 경우, minChoices는 반드시 1 또는 그 보다 커야 하지만, 주어진 선택 문항의 숫자를 초과할 수 없다. 미지정된 경우, 모든 선택 문항은 순차적으로 되어야 하고, maxChoices는 무시된다.
속성(Attribute) : maxChoices [0..1]: integer
interaction에 응답할 때, 응시자가 선택해서 명령하는 선택 문항의 최대 숫자. minChoices와 함께 사용되며, 지정된 경우, maxChoices는 minChoices와 같거나 그보다 커야 하며, 주어진 선택 문항의 숫자를 초과할 수 없다. 미지정된 경우, 모든 선택 문항은 순차적으로 정리될 수 있다.
속성(Attribute) : orientation [0..1]: orientation
orientation 속성은, 배열(ordering)이 고유의 수직적(vertical) 또는 수평적(horizontal) 해석을 갖는 표현(rendering) 시스템에 힌트를 제공한다.
클래스(Class) : simpleChoice (choice)
관련 클래스(Associated classes) :
orderInteraction, choiceInteraction
포함(Contains) :flowStatic [*]
simpleChoice는 flowStatic 객체를 포함하는 선택 문항으로, 하나의 simpleChoice는 중첩된 interaction을 하나라도 포함할 수 없다.
클래스(Class) : associateInteraction (blockInteraction)
associateInteraction은 blockInteraction로, 응시자에게 다수의 선택 문항을 제시하고 이들이 그 문항들 간에 associations를 생성하게 한다.
associateInteraction은 기본형 쌍(pair)과 단일(single) 혹은 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : shuffle [1]: boolean = false
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 인 경우, 전송 엔진은 선택 문항의 순서를 반드시 무작위로 만들어야 하는데, 이들 선택 문항은 fixed 속성에 영향을 받기 쉽다
속성(Attribute) : maxAssociations [1]: integer = 1
응시자가 만들 수 있는 association의 최대 숫자. maxAssociations이 0 이면, 제약이 없는 것이며, 1 (또는 0) 보다 크면, 그 interaction은 반드시 다중 중복성(multiple cardinality)을 갖는 응답에 바인딩되어 있어야 한다.
속성(Attribute) : minAssociations [0..1]: integer = 0
유효 응답을 생성하기 위해서 응시자가 만들어야만 하는 association의 최소 숫자. 만약 minAssociations이 0 이면, 응시자는 association을 만들 의무가 없으며, minAssociations는 maxAssociations이 정해 놓은 한계보다 작거나 같아야만 한다.
포함(Contains) : simpleAssociableChoice [1..*]
선택 문항의 순차적 세트
클래스(Class) : matchInteraction (blockInteraction)
matchInteraction은 일종의 blockInteraction으로 응시자에게 선택 문항 두 세트를 제시하고, 동일한 세트의 선택 문항 쌍(pairs)이 아닌 이 두 세트 내의 선택 문항 쌍(pairs) 간에 association을 형성하게 한다. 선택 문항의 matchMax와 matchGroup 속성을 사용하여 허용 가능한 associations에 추가로 제약을 둘 수 있다.
matchInteraction는 기본형 방향 쌍(directedPair)과 단일(single) 혹은 다중 중복성(multiple cardinality)를 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 이면, 전송 엔진은 각각의 세트 내에서 제시되는 선택 문항의 순서를 반드시 무작위로 만들어야 하는데, 이들 선택 문항은 fixed 속성에 영향을 받기 쉽다
속성(Attribute) : maxAssociations [1]: integer = 1
응시자가 만들도록 허용된 association의 최대 숫자. 만약 maxAssociations가 0 이면, 아무 제한이 없는 것이다, maxAssociations이 1 (또는 0) 보다 크면, 그 interaction은 다중 중복성(multiple cardiniality)를 갖는 응답에 바인딩되어 있어야 한다.
속성(Attribute) : minAssociations [0..1]: integer = 0
유효 응답을 생성하기 위해서 응시자가 만들어야만 하는 association의 최소 숫자. 만약 minAssociations이 0 이면, 응시자는 association을 만들 의무가 없으며, minAssociations는 maxAssociations이 정해 놓은 한계 보다 작거나 같아야만 한다.
포함(Contains) : simpleMatchSet [2]
선택 문항의 두 세트. 첫 번째 세트는 소스 선책 문항을 정의하며, 두 번째는 타겟을 정한다.
클래스(Class) : simpleAssociableChoice (associableChoice)
관련 클래스(Associated classes) :
associateInteraction, simpleMatchSet
속성(Attribute) : matchMax [1]: integer
이번 선택과 관련된 선택 문항의 최대 숫자. matchMax가 0 이면, 아무 제한이 없는 것이다.
속성(Attribute) : matchMin [0..1]: integer = 0
유효응답을 생성하기 위해 이번 선택과 관련이 있는 최소 선택 문항 수. 만약 matchMin이 0 이면, 응시자는 이 선택 문항을 다른 것과 연계시킬 의무가 전혀 없다. matchMin는 matchMax이 정해놓은 한계보다 작거나 같아야만 한다.
포함(Contains) : flowStatic [*]
associableChoice는 flowStatic 객체를 포함하는 선택 문항으로, 중첩된 상호작용을 포함해서는 안된다.
클래스(Class) : simpleMatchSet
관련 클래스(Associated classes) :
matchInteraction
포함(Contains) : simpleAssociableChoice [*]
세트를 위한 선택 문항의 순차적 세트
클래스(Class) : gapMatchInteraction (blockInteraction)
gapMatchInteraction은 응시자가 관련 선택 문항 세트에서 채울 수 있는 다수의 gap을 포함하는blockInteraction. 선택 문항에 표시된 응시자는 반드시 문맥(context)에서, 선택 문항에 표시된 바와 같이, 앞서 채운 gap을 갖는 콘텐츠를 검토할 수 있어야 한다.
gapMatchInteraction은 gap의 갯수에 따라 기본형 방향쌍(directedPair)과 단일(single) 또는 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다. 선택 문항은 쌍(pairing)의 소스를 나타내며 gap은 타겟의 소스를 나타낸다. 각 gap은 많아야 그 gap과 관련된 하나의 선택 문항만 가질 수 있다. 선택 문항의 최대 생성치는 gapChoice의 matchMax 속성에 의해 제어된다.
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 인 경우, 전송 엔진은 선택 문항의 순서(gap이 아니라) 를 반드시 무작위로 만들어야 하는데, 이들 선택 문항은 fixed 속성에 영향을 받기 쉽다
포함(Contains) : gapChoice [1..*]
gap을 채우기 위한 선택 문항의 순차적(ordered) 목록. 필요하다면, 선택 문항 숫자가 gap 숫자보다 적을 수 있다.
포함(Contains) : blockStatic [1..*]
상호작용 콘텐츠는 단순히 gap을 포함하는 콘텐츠의 한 부분이라고 할 수 있다. 블럭(block) 이 gap을 하나 이상 갖는 경우, interaction은 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
클래스(Class) : gap (associableChoice, inlineStatic)
gap은 gapMatchInteraction 내에만 나타나는 inlineStatic 요소이다.
속성(Attribute) : required [0..1]: boolean = false
참(true)로 설정된 경우, interaction에 유효 응답을 형성하기 위해서 이 gap은 반드시 응시자에 의해 채워져야 한다.
추상 클래스(Abstract class) :gapChoice (associableChoice)
파생 클래스(Derived classes) : gapImg, gapText
관련 클래스(Associated classes) : gapMatchInteraction
gapMatchInteraction에서 gap을 채우는 데 사용되는 선택 문항들은 단순한 textRun 또는 단순한 이미지 객체로, 둘 다 gapChoice 에서 파생된 것이다.
속성(Attribute) : matchMax [1]: integer
이번 선택과 관련된 선택 문항의 최대 숫자. matchMax 이 0 인 경우, 제약이 없다는 뜻이다.
속성(Attribute) : matchMin [0..1]: integer = 0
유효 응답을 형성하기 위해 이번 선택과 관련이 있어야 하는 gap의 최소 숫자. matchMax 이 0 인 경우, 응시자는 이 선택 문항을 다른 gap과 연계시킬 의무가 전혀 없다. matchMin은 matchMax가 지정한 한계치보다 적거나 동일해야 한다.
클래스(Class) : gapText (gapChoice)
사용자에 의해 gap에 삽입될 단순한 textRun은 printedVariable 를 갖는 다양한 변수 대체에 쉽게 영향을 받을 수 있다.
포함(Contains) : textOrVariable [*]
클래스(Class) : gapImg (gapChoice)
관련 클래스(Associated classes) : graphicGapMatchInteraction
gap 이미지는 응시자에 의해 삽입될 단일 이미지를 포함한다.
속성(Attribute) : objectLabel [0..1]: string
삽입될 이미지 객체를 위한 선택적 레이블
포함(Contains) : object [1]
클래스(Class) : inlineChoiceInteraction (inlineInteraction)
inlineChoice는 사용자에게 단순한 텍스트 일부라고 할 수 있는 선택 문항 세트를 제시하는 inlineInteraction이다. 응시자가 할 일은 이 선택 문항 중의 하나를 고르는 것이다. choiceInteraction 과는 다르게, 전송 엔진은 응시자로 하여금 주변 텍스트의 문맥(context) 내에서 그들의 선택 문항을 검토할 수 있도록 해야 한다.
inlineChoiceInteraction은 baseType 식별자(identifier) 와 단일 중복성(single cardinality) 만을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
포함(Contains) : inlineChoice [1..*]
사용자에게 보여지는 선택 문항의 순차적 목록. shuffle 이 참(true)이 아닌 한, 이 순서는 사용자에게 제시되는 순서가 된다.
속성(Attribute) : shuffle [1]: boolean = false
shuffle 속성이 참(true) 인 경우, 전송 엔진은 선택 문항의 순서를 반드시 무작위로 만들어야 하는데, 이들 선택 문항은 fixed 속성에 영향을 받기 쉽다
속성(Attribute) : required [0..1]: boolean = false
참(true) 인 경우, 이 interaction에 대한 유효응답을 형성하기 위해 선택 문항은 반드시 응시자에 의해 선택되어야 한다.
클래스(Class) : inlineChoice (choice)
관련 클래스(Associated classes) : inlineChoiceInteraction
사용자에게 제시될 단순한 textRun은 printedVariable을 갖는 다양한 변수대체에 쉽게 영향을 받을 수 있다.
추상 클래스(Abstract class) :stringInteraction
파생 클래스(Derived classes) : extendedTextInteraction, textEntryInteraction
문자열 interaction은, 바람직한 경우 문자열 대신 숫자 응답 변수(response variable)에 바인딩될 수 있다.
숫자 응답에 관한 상세정보가 필요하다면, 문자열 interaction은 레코드 다중성(record cardinality)을 갖는 응답 변수(response variable)에 바인딩될 수 있다. 결과값은 다음과 같은 필드를 포함한다.
stringValue: 문자열, 응시자가 작성한 대로
floatValue: 응시자가 작성한 문자열 숫자값, float처럼
integerVariable: 분수 숫자 또는 지수가 지정되지 않았거나, 그렇지 않으면 NULL 이었을 경우, 응시자가 작성한 문자열의 숫자값. 일종의 integer
leftDigits: 소수점 왼쪽에 있는 숫자. 일종의 integer
rightDigitis: 소수점 오른쪽에 있는 숫자. 일종의 integer
ndp: 응시자가 지정한 분수 숫자. 지수가 주어지지 않았다면, 이는 rightDigits 과 동일함. 일종의 integer
nsf: 응시자가 지정한 중요한 숫자. 일종의 integer
exponent: 응시자가 제공한 integer 지수, 아무것도 지정되지 않았다면 NULL
속성(Attribute) : base [0..1]: integer = 10
문자열 interaction이 숫자형 응답 변수(response variable)에 바인딩되어 있다면, 기본 속성은 응시자가 입력한 값을 해석하기 위한 숫자 기반(base)을 설정하기 위해 반드시 사용되어야 한다.
속성(Attribute) : stringIdentifier [0..1]: identifier
문자열 interaction이 숫자형 응답 변수(response variable)에 바인딩되어 있다면, 응시자가 입력한 실제 문자열은 또한 interaction을 두번째(second) 응답 변수(response variable)(기본형 string의)에 바인딩함으로써 캡쳐될 수 있다.
속성(Attribute) : expectedLength [0..1]: integer
expectedLength 속성은 기대되는 응답의 전반적인 예상 길이에 대한 힌트를 응시자에게 제공한다. 전송 엔진(delivery Engine)은 적용 가능한 경우 이 속성값을 사용하여 응답 박스의 크기를 설정해야 한다. 이는 유효성 제약은 아니다.
속성(Attribute) : patternMask [0..1]: string
이것이 주어진다면, patternMask는 응시자의 응답이 유효하기 위해서 반드시 일치시켜야 하는 정규식(regular expression)을 구체적으로 정한다. 여기서 사용된 정규식 언어는 첨부 [XML_SCHEMA2]의 첨부 F 에 정의되어 있다. 인풋의 포맷이 응시자에게 명확하게 하는 점에, 특히 응답의 유효성 확인이 테스트를 통한 진행에 필요할 때, 주의가 필요하다.
속성(Attribute) : placeholderText [0..1]: string
시각적 환경에서, 문자열 interaction은 대개 응시자가 쓰거나 또는 입력하는 빈 박스로 표현된다. 그러나. 대화 기반(speech based) 환경에서는, interaction을 음성화 하기 위해 사용될 수 있는 개체틀 텍스트(placeholder text)를 갖는 것이 도움이 된다. 전송 엔진은 이것이 필요할 때 기본값 개체틀 텍스트 대신 이러한 속성값(제공되는 경우)을 사용해야 한다. 실행자들은 응답 변수(response variables) 절에서 설명된 기본값 사용에 관한 내용에 대해 명심하고 있어야 한다.
클래스(Class) : textEntryInteraction (inlineInteraction, stringInteraction)
textEntryInteraction은 응시자의 간단한 텍스트 일부를 취하는 inlineInteraction의 일종이다. inlineChoiceInteraction 처럼, 전송 엔진은 응시자로 하여금 주변 텍스트의 문맥(context) 내에서 그들의 선택 문항을 검토할 수 있도록 해야 한다.
textEntryInteraction은 단일 다중성(single cardinality) 만을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다. baseType은 반드시 'string', 'integer', 'float' 중 하나여야 한다.
클래스(Class) : extendedTextInteraction (blockInteraction, stringInteraction)
extendedTextInteraction은 응시자가 확장된 텍스트를 입력할 수 있도록 해주는 blockInteraction이다.
extendedTextInteraction은 'string', 'integer', 'float'의 baseType 을 갖는 응답 변수(response variable)에 바인딩되어 있어야한다. 단일 다중성(single cardinality)을 갖는 응답 변수(response variable)에 바인딩 된 경우, 텍스트의 단일 문자열이 응시자로부터 요구된다. 다중(multiple) 또는 순서화된 다중성(ordered cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있는 경우, 여러 개의 분리된 텍스트 스트링이 요구될 수 있다. 아래 maxStrings참조
속성(Attribute) : maxStrings [0..1]: integer
maxStrings 속성이 요구되는 경우는 interaction이 컨테이너 응답 변수(response variable)에 바인딩되어 있을 때이다. 전송 엔진(delivery engine)은 응시자로부터 받아 들여진 분리 문자열의 최대 숫자를 통제하기 위해 이 속성을 사용해야 한다. 다중 문자열이 받아 들여진 경우, expectedLength가 각 문자열에 적용된다.
속성(Attribute) : minStrings [0..1]: integer = 0
minStrings 속성은 유효 응답을 형성하기 위해 응시자에게 요구되는 개별(비어있지 않은, non-empty) 문자열의 최소 숫자를 지정한다. minStrings가 0 이면, 응시자는 문자열을 입력 할 필요가 없다. minStrings은 maxStrings가 지정한 한계보다 작거나, 동일해야 한다. 만약 interaction이 컨테이너에 묶여 있지 않다면, minStrings가 1 이 될 수도 있는 특수한 경우도 있다. 이 경우 응시자는 유효 응답을 형성하기 위해 반드시 비어있지 않은(non-empty) 문자열을 입력해야 한다. patternMask 속성으로 문자열 양식에 대한 보다 복잡한 제약을 제어할 수 있다.
속성(Attribute) : expectedLines [0..1]: integer
expectedLines 속성은 입력 라인에 필요한 예상 숫자에 관한 힌트를 응시자에게 제공한다. 전송 엔진(delivery engine)은 적용 가능한 경우 이 속성값을 사용하여 응답 박스의 크기를 설정해야 한다. 이는 유효성 제약은 아니다.
속성(Attribute) : format [0..1]: textFormat = plain
응시자가 입력한 텍스트 포맷을 제어하기 위해 사용된다. 아래 textFormat 참조. 이 속성은 연결 변수 값이 응답 처리 엔진에 의해 해석되는 방법에 영향을 주며, 또한 그 값이 전송 엔진에서 캡쳐되는 방법을 제어한다.
열거(Enumeration) : textFormat
plain
응시자가 입력할 텍스트가 플레인 텍스트(plain text) 임을 나타낸다. 이 포맷은 일정한 체계가 없는 짧은 응답에 적합하다. 전송 엔진은 응답이 흰색 공백문자(white-space character)로만 이루어져 있는 경우를 제외하고, 응시자 인풋의 흰색 공백 문자를 간직해야 하며, 이 경우 응답은 NULL 로 취급되어야 한다.
preFormatted
응시자가 입력할 텍스트가 사전에 포맷되었으며 [XHTML]의 'pre' 정의에 일치하는 방법으로 변경되어야 함을 의미한다. 전송 엔진은 응답이 흰색 공백 문자(white-space character)로만 이루어져 있는 경우를 제외하고, 응시자 입력의 흰색 공백 문자를 간직해야 하며, 이 경우 응답은 NULL 로 취급되어야 한다.
xhtml
응시자가 입력할 문자가 체계가 있는 텍스트라는 의미이다. 응답 변수(response variable) 값은 XHTML 에서 표시된 텍스트이다. 전송 엔진은 체계있는 텍스트를 캡쳐하기에 적절한 인터페이스를 제시할 것이며, 이는 위키 페이지 편집기 또는 완전한 WYSIWYG 편집기에서 사용되는 것과 같이, 간단한 텍스트 마크업 규칙 세트와 함께 해석되는 평문 텍스트일 수 있다.
클래스(Class) : hottextInteraction (blockInteraction)
hottextInteraction은 응시자에게 간단한 텍스트 단락 등과 같이 주변 문맥(context) 내에 삽입된 선택가능한 textRun으로써 표시되는 선택 문항 세트를 제시한다. choiceInteraction과 같이, 응시자의 할 일은 maxChoices 최대 갯수까지 하나 이상의 선택 문항을 고르는 것이다. interaction은 연결 응답 변수(response variable)의 defaultValue로부터 초기화 되는데, 이 값은 문항이 선택되지 않았음(일반적인 경우)을 의미하는 NULL 값이다.
hottextInteraction은 반드시 식별자(identifier) baseType과 단일(single) 또는 다중 중복성(multiple cardinality)를 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : maxChoices [1]: integer = 1
응시자가 선택할 수 있는 최대 선택 문항 수. matchChoices가 0 이면, 제약이 없음을 의미하며, 1 (또는 0) 보다 크다면, interaction은 다중 중복성(multiple cardinality)을 갖는 응답에 반드시 묶여 있어야 한다.
속성(Attribute) : minChoices [0..1]: integer = 0
유효 응답을 형성하기 위해 응시자가 선택하도록 요구되는 최소 선택 문항 수. minChoices가 0 이면, 응시자는 선택 문항을 선택할 필요가 없다. minChoices는 maxChoices가 지정한 한계보다 작거나 동일해야 한다.
포함(Contains) : blockStatic [1..*]
상호작용 콘텐츠는, 콘텐츠의 한 조각이라고 할 수 있으며, hottext 영역을 포함하는 텍스트 한 단락이 그 예라고 할 수 있다
클래스(Class) : hottext (choice, flowStatic, inlineStatic)
hottext 영역은 개별 선택 문항을 제공하는 hottextInteraction 콘텐츠 내에서 사용되며, 어떠한 중첩 interaction 또는 다른 hottext 영역을 포함할 수 없다.
hottext 선택 문항이 숨김상태 일때 (연결 템플릿 변수 값에 의해), 선택 문항의 콘텐츠는 단순히 주변 자료의 일부인 것처럼 여전히 응시자에게 제시되어야 한다. hottext의 경우, 선택 문항의 숨김이 갖는 효과는 응시자의 선택이 가능한 textRun을 만드는 것이다.
포함(Contains) : inlineStatic [*]
추상 클래스(Abstract class) :hotspot
파생 클래스(Derived classes) : associableHotspot, hotspotChoice
일부의 그래픽 interaction은 특수하게 정의된 영역 또는 hotspots을 갖는 이미지를 수반한다.
속성(Attribute) : shape [1]: shape
hotspot의 shape
속성(Attribute) : coords [1]: coords
hotspot의 크기 및 포지션. shape와 함께 해석된다.
속성(Attribute) : hotspotLabel [0..1]: string256
이미지의 이(hot) 영역을 위한 대체 텍스트로, 지정된 경우, img 대체 텍스트와 같은 방식으로 취급되어야 한다.
클래스(Class) : hotspotChoice (choice, hotspot)
관련 클래스(Associated classes) : hotspotInteraction, graphicOrderInteraction
클래스(Class) : associableHotspot (associableChoice, hotspot)
관련 클래스(Associated classes) : graphicAssociateInteraction, graphicGapMatchInteraction
속성(Attribute) : matchMax [1]: integer
이 선택 문항이 연결되어 있는 최대 선택 문항 수. matchMax가 0 이면, 제약이 없다는 의미이다.
속성(Attribute) : matchMin [0..1]: integer = 0
유효 응답을 형성하기 위해 이 선택 문항이 연결되어 있는 최소 선택 문항 수. matchMin가 0 이면, 응시자는 이 선택 문항을 다른 것과 연결할 필요가 없다. matchMin은 matchMax가 지정한 한계보다 작거나 동일해야 한다.
추상 클래스(Abstract class) :graphicInteraction (blockInteraction)
파생 클래스(Derived classes) : graphicAssociateInteraction, graphicGapMatchInteraction, graphicOrderInteraction, hotspotInteraction, selectPointInteraction
포함(Contains) : object [1]
각 그래픽 interaction은 type 속성이 지정한 이미지 형식 객체로 주어진 연결 이미지를 반드시 갖고 있어야 한다.
클래스(Class) : hotspotInteraction (graphicInteraction)
hotspotInteraction은 그래픽 이미지의 영역으로 정의되는 선택 문항 해당세트를 갖고 있는 그래픽 interaction이다. 응시자가 할 일은 하나 또는 그 이상의 이 영역(hotspots)을 선택하는 것이다. hotspotInteraction은 서로(그래픽 이미지에서 보여지듯)에 관한 선택 문항의 공간적 관계가 문항의 니즈에 중요할 때에만 사용되어야 한다. 그렇지 않다면, choiceInteraction이 각 옵션에 대한 개별 자료와 함께 대신 사용되어야 한다.
전송 엔진은 반드시 이미지의 선택 영역(들)을 명확하게 나타내야 하며, 또한 선택되지 않은 영역까지도 나타낼 수 있다. 숨김 상태의 hotspots을 갖는 interactions은 selectPointInteraction과 함께 실행된다.
hotspotInteraction 은 반드시 식별자(identifier) baseType과 단일(single) 또는 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : maxChoices [1]: integer = 1
응시자가 선택 가능한 최대 선택 문항 수. maxChoices가 0 이면, 제약이 없음을 의미하며, 1 (또는 0) 보다 크다면, interaction은 다중 중복성(multiple cardinality)을 갖는 응답에 반드시 바인딩되어 있어야 한다.
속성(Attribute) : minChoices [0..1]: integer = 0
유효 응답을 형성하기 위해 응시자가 선택하도록 요구되는 최소 선택 문항 수. minChoices가 0 이면, 응시자는 선택 문항을 고를 필요가 없다. minChoices는 maxChoices가 지정한 한계보다 작거나 동일해야 한다.
포함(Contains) : hotspotChoice [1..*] {ordered}
응시자가 선택할 수 있는 선택 문항을 정의하는 hotspots. 전송 시스템이 포인트 기반 선택을 지원하지 않으면, 선택 문항이 주어지는 순서는 반드시 응시자가 선택하도록 제시되는 순서이어야 한다. 예를 들어, 단순한 키보드 탐색의 “tab order”와 같다. hotspots이 겹치면, 목록 첫 번째에 있는 hotspots이 이후에 나타나는 hotspots을 가린다. Hotspot 기본값이 지정되어 있다면 마지막에 나타난다.
클래스(Class) : selectPointInteraction (graphicInteraction)
hotspotInteraction과 마찬가지로, selectPointInteraction은 그래픽 상호작용이다. 응시자가 할 일은 하나, 또는 그 이상의 포인트를 고르는 것이다. 연결 응답은 미리 지정된 영역에 대한 비교를 기초로 응답을 채점하는 areaMapping을 가질 수도 있으나, 전송 엔진은 이미지의 이 영역들을 나타내서는 안된다. 응시자가 고른 실제 포인트만이 표시된다.
selectPointInteraction은 반드시 포인트(point) baseType과 단일(single) 또는 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : maxChoices [1]: integer = 1
이 속성은 응시자가 선택할 수 있는 포인트의 최대 숫자로 해석된다. maxChoices이면 제약이 없다는 뜻이며, 1 (또는 0) 보다 큰 경우, interaction은 반드시 다중 중복성(multiple cardinality)을 갖는 응답에 바인딩되어 있어야 한다.
속성(Attribute) : minChoices [0..1]: integer = 0
유효 응답을 형성하기 위해 응시자가 선택해야만 하는 포인트 최소 숫자. minChoices 가 0 인 경우, 응시자는 포인트를 선택할 필요가 없다. minChoices는 maxChoices. 에 의해 지정된 한계보다 작거나 동일해야 한다.
클래스(Class) : graphicOrderInteraction (graphicInteraction)
graphicOrderInteraction은 그래픽 이미지의 영역으로 정의되는 선택 문항의 해당 세트를 갖는 그래픽 상호작용이다. 응시자가 할 일은 이 영역(hotspots)에 대한 배열을 지정하는 것이다. 순차적 핫스팟 상호작용(ordered hotspot interaction)은 서로(그래픽 이미지에서 보여지듯)에 관한 선택 문항의 공간적 관계가 문항의 니즈에 중요할 때에만 사용되어야 한다. 그렇지 않다면, orderInteraction이 각 옵션에 대한 개별 자료와 함께 대신 사용되어야 한다.
전송 엔진은 이미지의 모든 지정된 영역을 명확하게 나타내야 한다.
순차적 핫스팟 상호작용(ordered hotspot interaction)은 반드시 식별자(identifier) baseType과 순차적 다중성(ordered cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
포함(Contains) : hotspotChoice [1..*]
응시자가 지정하는 순서의 선택 문항을 정의하는 핫스팟. 전송 시스템이 포인트 기반 선택을 지원하지 않으면, 선택 문항이 주어지는 순서는 반드시 응시자가 선택하도록 제시되는 순서라야 한다. 예를 들어, 단순한 키보드 탐색의 “tab order” 이다.
속성(Attribute) : minChoices [0..1]: integer
상호작용에 대한 유효응답을 형성하기 위해 응시자가 선택하고 정렬해야 하는 선택 문항의 최소 숫자. 지정된 경우 minChoices는 1이거나 그보다 커야 하지만, 가능한 선택 문항 숫자보다 많을 수 없다. 지정되지 않은 경우, 모든 선택 문항은 순차적으로 정렬되어야 하며, maxChoices는 무시된다.
속성(Attribute) : maxChoices [0..1]: integer
상호작용에 응답할 때 응시자가 선택하거나 또는 정렬하는 선택 문항의 최대 숫자. minChoices와 함께 사용되며, 지정된 경우, maxChoices는 minChoices 보다 크거나 이와 동일해야 하며, 가능한 선택 문항 숫자보다 많을 수 없다. 지정되지 않은 경우, 모든 선택 문항이 순차적으로 정렬될 수 있다.
클래스(Class) : graphicAssociateInteraction (graphicInteraction)
graphicAssociateInteraction은 그래픽 이미지의 영역으로 정의되는 선택 문항의 해당 세트를 갖는 그래픽 상호작용(graphic interaction) 이다. 응시자가 할 일은 이 영역을(hotspots) 서로 연결하는 것이다. graphicAssociateInteraction은, 서로(그래픽 이미지에서 보여지듯)에 관한 선택 문항의 그래픽 관계가 문항의 니즈에 중요할 때에만 사용되어야 한다. 그렇지 않다면, associateInteraction이 각 옵션에 대한 개별 자료(material)와 함께 대신 사용되어야 한다.
전송 엔진은 이미지의 모든 지정된 영역을 명확하게 나타내야 한다.
순차적 핫스팟 상호작용(ordered hotspot interaction)은 반드시 기본 유형 쌍(base-type pair)과 단일(single) 또는 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : maxAssociations [1]: integer = 1
응시자가 만들 수 있도록 허용된 연결(association)의 최대 숫자. maxAssociations이 0 인 경우, 제약이 없으며, 1 (또는 0) 보다 큰 경우, 상호작용(interaction)은 다중 중복성(multiple cardinality)을 갖는 응답에 바인딩되어 있어야 한다.
포함(Contains) : associableHotspot [1..*]
응시자가 연결하는 선택 문항을 정의하는 핫스팟(hotspots). 전송 시스템이 포인트 기반 선택을 지원하지 않으면, 선택 문항이 주어지는 순서는 반드시 응시자가 선택하여 제시되는 순서라야 한다. 예를 들어, 단순한 키보드 탐색의 ‘tab order”와 같다. 예를 들어, 단순한 키보드 탐색의 “tab order” 이다.
클래스(Class) : graphicGapMatchInteraction (graphicInteraction)
graphicGapMatchInteraction은 그래픽 이미지의 영역으로 정의되는 gap 집합과, 이미지 밖의 것으로 정의되는 gap 선택 문항의 추가 세트를 갖는 그래픽 상호작용이다. 응시자는 이미지 안의 gap을 갖는 gap 선택 문항들을 연결해야 하며, 선택 문항에 표시된 대로, 콘텍스트 안에서 채워진 gap을 갖는 그 이미지를 검토할 수 있어야 한다. 이미지 안의 gap이 요청된 gap 선택 문항을 받기에 적절한 크기가 될 수 있도록 이들 interaction을 구성할 때에는 각별한 주의가 필요하다. 연결된 경우, 선택 문항들은 가능하다면 전적으로 gap 안에서만 나타나야 하며, 또 겹침이 필요한 곳에 이들 선택 문항들이 서로를 완벽하기 숨겨서는 안된다. 응시자가 선택 문항을 gap 너머에 위치시킴으로써(다시 말해, 드래그 앤 드롭) 연결을 표시하는 경우, 시스템은 이 선택 문항을 ‘snap” 하여 이들 요구사항을 만족시킬 수 있는 가장 가까운 자리로 옮겨야 한다.
graphicGapMatchInteraction은 기본 유형(base-type) 방향 쌍(directedPair)과 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다. 선택 문항들은 쌍(pairing)의 소스를 나타내며, 이미지 안의 gap(hotspots)은 목표를 나타낸다. 단순한 gapMatchInteraction과는 다르게, 각 gap은 그것과 연결된 다수의 선택 문항을 원하는 경우 가질 수 있으며, 더 나아가 동일한 선택 문항이 하나의 associableHotspot 과 여러 번 연결될 수 있다. 이 경우, 해당 방향 쌍(directedPair)이 응답 변수(response variable) 값 안에서 여러 번 나타난다.
포함(Contains) : gapImg [1..*]
gap을 채우기 위한 선택 문항의 순차적 목록. 필요한 경우, 선택 문항의 숫자가 gap 보다 작을 수 있다.
포함(Contains) : associableHotspot [1..*]
응시자에 의해 채워지는 gap을 정의 하는 hotspots. 전송 시스템이 포인트 기반 선택을 지원하지 않으면, 선택 문항이 주어지는 순서는 반드시 응시자가 선택하도록 제시되는 순서라야 한다. 예를 들어, 단순한 키보드 탐색의 ‘tab order” 과 같다. 예를 들어, 단순한 키보드 탐색의 ‘tab order” 이다. 기본값 hotspot은 지정되지 않아야 한다.
클래스(Class) : positionObjectInteraction (interaction)
관련 클래스(Associated classes) :
positionObjectStage
positionObjectInteraction은 응시자에 의해 다른 그래픽 이미지(단계)에 위치하는 단일 이미지로 구성된다. selectPointInteraction과 마찬가지로, 연결응답은 미리 지정된 영역에 대한 비교를 기초로 응답을 채점하는 areaMapping을 가질 수도 있으나, 전송 엔진은 이 단계의 이들 영역들을 나타내서는 안된다. 응시자가 고른 실제 포인트만이 표시된다.
positionObjectInteraction은 반드시 포인트 baseType과 단일(single) 또는 다중 중복성(multiple cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다. 그 단계에 관해, 포인트는, 위치가 정해지는 이미지의 중심 포인트의 좌표를 기록한다.
속성(Attribute) : centerPoint [0..2]: integer
centerPoint 속성은 가로, 세로 순서로 이미지의 상단 좌측 코너에서부터 오프셋(offset) 처럼, 증잉(center)으로 취급될 이미지의 자리배치에 대한 포인트를 정의한다. 기본적으로, 이것은 이미지 경계 사각형의 중심이다.
이미지가 배치된 그 단계는 여러 positionObjectInteractions 간에 공유될 수 있으며, 따라서 자체의 positionObjectStage 클래스 안에서 정의된다.
속성(Attribute) : maxChoices [1]: integer = 1
이미지가 배치될 수 있는 위치(position)의 최대 숫자. matchChoices가 0 이면, 제약이 없으며, 1 (또는 0) 보다 큰 경우, interaction은 반드시 다중 중복성(multiple cardinality)을 갖는 응답에 바인딩되어 있어야 한다.
속성(Attribute) : minChoices [0..1]: integer
interaction에 대한 유효 응답을 형성하기 위해 이미지가 배치되어야 할 위치(position)의 최소 숫자. 지정된 경우, minChoices가 1 이거나 그보다 커야 하지만, maxChoices가 지정한 한계를 초과할 수 없다.
포함(Contains) : object [1]
응시자에 의해 단계(stage)에 위치하게 되는 이미지
클래스(Class) :positionObjectStage (block)
포함(Contains) : object [1]
단계(stage)로 사용될 이미지. 이 이미지 위에 개별 positionObjectInteractions는 응시자가 그들의 객체를 배치할 수 있도록 허용한다.
포함(Contains) : positionObjectInteraction [1..*]
클래스(Class) : sliderInteraction (blockInteraction)
sliderInteraction은 하위와 상의 바운드 사이의 숫자 값을 선택하는 제어를 응시자에게 제공한다. 정수(integer) 또는 플로트(float)의 기본 유형(base-type)을 갖는 단일 중복성(single cardinality)를 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : lowerBound [1]: float
연결 응답 변수(response variable)가 정수(integer) 유형이면, 하한(lowerBound)을 주어진 값보다 작거나 동일한 최대 정수(integer)까지 내림으로 계산한다.
속성(Attribute) : upperBound [1]: float
연결 응답 변수(response variable)가 정수(integer) 유형이면, 상한(upperBound)을 주어진 값보다 작거나 동일한 최대 정수(integer)까지 올림으로 계산한다
속성(Attribute) : step [0..1]: integer
제어가 시작되는 단계(step). 예를 들어,상한(upper bound)과 하한(lower bound)이 [0,10], 이고 step 이 2 이면, 응답 값은 {0,2,4,6,8,10} 세트로 제한될 것이다. 만약 정수(integer) 응답에 바인딩되어 있으며, 기본값 단계(step)는 1 이며, 다르게 정의되지 않는 한 슬라이더(slider)는 대략 연속적인 스케일로 작동하는 것으로 간주된다.
속성(Attribute) : stepLabel [0..1]: boolean = false
기본적으로, 슬라이더(sliders)는 마지막에서만 레이블(label) 된다. stepLabe 속성은 슬라이더 위의 각 단계(step)가 또한 레이블(label) 되어야 할 것인지 아닌지를 제어한다. 전송 엔진이 단계(steps) 에 레이블(label) 하도록 보장할 수 있을 것 같지 않으므로 이 속성은 오직 요청대로만 취급되어야 한다.
속성(Attribute) : orientation [0..1]: orientation
orientation 속성은 렌더링 시스템에 힌트를 제공하는데, 그 힌트는 슬라이더(slider)가 고유의 수직적(vertical) 또는 수평적(horizontal) 해석을 갖는 양의 값을 표시하기 위해 사용되고 있다는 것이다. 예를 들어, 높이 값을 표시하게 위해 사용되는 상호작용은 orientation을 수직으로 설정하여, 그것을 수평으로 변경하는 것은 문항 난이도를 거짓으로 높일 수 있다는 것을 나타낼 수 있다.
속성(Attribute) : reverse [0..1]: boolean
reverse 속성은 렌더링 시스템에 힌트를 제공하는데, 그 힌트는 슬라이더(slider) 가 일반적인 상한(upper bound)과 하한(lower bound)의 의미가 반대로 돌아가게 하는 양의 값을 표시하기 위해 사용되고 있다는 것이다. 예를 들어, 해저의 깊이를 표시하기 위해 사용되는 상호작용은 상한과 하한을 둘 다 수직 orientation으로 지정하고 reverse 속성을 설정할 수 있다.
슬라이더 상호작용은 연결 응답 변수(response variable)를 위한 기본값으로 지정된 경우를 제외하고, 기본값 또는 초기 포지젼을 갖지 않음을 명심한다. 현대 선택된 값은, 있다면, 반드시 응시자에게 분명하게 표시되어야 한다.
클래스(Class) : mediaInteraction (blockInteraction)
mediaInteraction은 응시자가 시간 기반 미디어 객체와 상호작용하는 방법에 대해 보다 많은 통제를 허용하며, 미디어 객체가 연결 응답 변수(response variable) 값 안에서 보고 되기 위해 사용되어야 하는 횟수를 허용하는데, 그 변수값은 반드시 기본 유형(base-type) 정수(integer) 와 단일 다중성(single cardinality) 이라야 한다.
속성(Attribute) : autostart [1]: boolean
autostart 속성은 미디어 객체가 응시자의 시도가 시작되자 마자 시작할 지(true), 또는 응시자의 통제에 의해 시작 되도록(false) 할 지를 결정한다.
속성(Attribute) : minPlays [0..1]: integer = 0
minPlays 속성은 미디어 객체가 응시자에 의해 실행되는 최소 숫자를 나타낸다. 이를 실행하는 기술은 시스템 마다 다르며, 일부 시스템에서는 이 속성이 불가능할 수도 있다. 기본적으로, 최저치는 없다. 미디어 객체의 최소 횟수 실행 실패는 유효하지 않은 응답을 구성한다.
속성(Attribute) : maxPlays [0..1]: integer = 0
maxPlays 속성은 미디어 객체가 많아야 maxPlays 횟수로 실행될 수 있다는 것을 의미한다. 응시자는 maxPlay 횟수 이상 미디어 객체를 실행할 수 없다. 0 값(기본값)은 제한이 없음을 의미한다.
속성(Attribute) : loop [0..1]: boolean = false
loop 속성은 연속 실행 모드를 설정하기 위해 사용된다. 이 연속 실행 모드에서, 미디어 객체가 일단 실행되기 시작하면, 계속해서 실행된다 (maxPlays의 영향을 받는다).
포함(Contains) : object [1]
미디어 객체 그 자체
클래스(Class) : drawingInteraction (blockInteraction)
drawing interaction은 응시자가 주어진 그래픽 이미지(the canvas)를 변형하기 위해 그리기 도구 공통 세트를 사용하도록 해준다. 기본 유형 파일(base-type file)과 단일 다중성(single cardinality)를 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다. 결과는 본래 이미지와 동일한 포맷의 파일이다.
포함(Contains) : object [1]
그림이 그려지는 캔버스 역할을 하는 이미지는, 유형(type) 속성에 의해 지정되는 것처럼 이미지(image) 타입의 객체로 주어진다.
클래스(Class) : uploadInteraction (blockInteraction)
upload interaction은 응시자가 응답을 나타내는 미리 준비된 파일을 업로드할 수 있도록 한다. 기본 유형 파일(base-type file)과 단일 다중성(single cardinality)를 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
속성(Attribute) : type [0..1]: mimeType
업로드한 파일의 예상 마임타입(mime-type)
클래스(Class) : customInteraction (block, flow, interaction)
customInteraction은 현재 기록되지 않은 상호작용을 위한 지원을 포함하는 이 표준의 확장 가능성에 대한 기회를 제공한다.
클래스(Class) : endAttemptInteraction (inlineInteraction)
endAttemptInteraction은 상호작용의 특수 유형으로 문항 저작자가 응시자에게 시도를 종료하는 방법에 대한 통제를 제공할 수 있게 한다. 응시자는 이 상호작용을 사용하여 시도 종료(응답 처리를 시작하게)를 즉각적으로 할 수 있으며, 전형적으로 힌트를 요구한다. endAttemptInteraction은 반드시 기본 유형(base-type) 논리(boolean)와 단일 다중성(single cardinality)을 갖는 응답 변수(response variable)에 바인딩되어 있어야 한다.
응시자가 endAttemptInteraction을 사용하여 응답 처리를 발동하면, 연결 응답 변수(response variable)는 참(true)으로 설정된다. 응답 처리가 다른 방법으로, 다른 endAttemptInteraction을 통해서든 또는 전송 엔진을 위한 기본 방법(default method)을 통해서든 발동되면, 연결 응답 변수(response variable)는 'false'로 설정된다. 응답 변수(response variable)의 기본값은 항상 무시된다.
속성(Attribute) : title [1]: string
Interaction을 사용하여 시도를 종료하기 위한 프롬프트로 응시자에게 보여져야 하는 문자열. 이 문자열은 짧아야 하며, 한 단어가 선호된다. 전형적인 값으로는 "Hint"가 있다. 예를 들어, 그래픽 환경에서, 이 문자열은 버튼 위의 레이블로 나타나는 것으로, 이 버튼을 누르면 시도를 종료하는 것이 된다.
테스트는 assessmentTest 클래스로 표현된다.
클래스(Class) : assessmentTest
테스트는 응시자가 어떤 문항을 보는 지, 어떤 순서로, 어떤 방법으로 응시자가 문항과 상호작용 할 것인가를 결정하는 규칙의 연결세트를 갖는 assessmentItem 그룹이다. 이 규칙은 테스트를 통한 유효 경로를 설명하는데, 그 시점은 응답을 응답 처리(response processing)에 제출할 때, 피드백(있다면)이 주어질 때이다.
속성(Attribute) : identifier [1]: string
문항의 주식별자(principle identifier). 이 식별자는 테스트의 메타 데이터 내에 상응하는 엔트리를 가지고 있어야 한다. 추가 정보를 위해 메타 데이터와 사용 데이터를 참조
속성(Attribute) : title [1]: string
assessmentTest의 타이틀은 테스트가 모든 테스트 세션 외에서 선택될 수 있도록 만들어져 있다. 따라서 전송 엔진은 이 타이틀을 테스트 중에 응시자에게 언제든 보여줄 수 있으나, 의무사항은 아니다.
속성(Attribute) : toolName [0..1]: string256
도구 이름 속성은 스스로를 식별하는 테스트를 생성하는 도구를 허용한다. 다른 처리 시스템은 이 정보를 활용 특수 데이터의 콘텐츠로 해석하기 위해 사용할 수 있다. 테스트 루브릭(rubric)의 요소들에 대한 레이블(label) 등을 포함한다.
속성(Attribute) : toolVersion [0..1]: string256
저작도구 버전은 도구가 자체 버전을 식별하는 테스트를 만들도록 한다. 이 값은 반드시 toolName 의 문맥(context)에서만 해석되어야 한다.
포함(Contains) : outcomeDeclaration [*]
각각의 테스트는 결과의 연결 세트를 갖는다. 이들 결과값들은 테스트의 outcomeProcessing 규칙에 의해 설정된다.
포함(Contains) : timeLimits [0..1]
테스트 전체에 대해 응시자에게 허용되는 시간 분량을 선택적으로 제어한다.
포함(Contains) : testPart [1..*]
각각의 테스트는 하나 또는 그 이상의 부분으로 나누어 지는데, 이들은 순서대로 섹션, 하위 섹션, 등으로 나뉜다. 하나의 testPart는 테스트의 주요 부분을 나타내며, 그 부분 내에서 모든 섹션과 하위 섹션에 적용되는 기본 모드 파라미터를 통제하기 위해 사용된다.
포함(Contains) : outcomeProcessing [0..1]
테스트 결과 값을 계산하기 위해 사용되는 규칙 세트
포함(Contains) : testFeedback [*]
테스트 결과에 의해 통제되는 테스트 수준 피드백을 포함한다.
이 표준은 각각의 테스트 부분의 전반적인 행동이 통제될 수 있는 두 가지 방법을 정의한다. 검색 모드와 제출 모드
열거(enumeration) : navigationMode
선형(linear)
비선형(nonlinear)
검색 모드는 응시자가 택할 수 있는 일반적인 경로를 결정한다. 선형(linear) 모드의 testPart는 응시자가 각각의 문항을 차례대로 시도하는 것을 제한한다. 일단 응시자가 옮겨가면, 다시 돌아올 수 없다. 비선형(nonlinear) 모드의 testPart는 이 제한을 제거하며—응시자는 언제든 테스트의 모든 문항을 탐색할 수 있다. 테스트 전송 시스템은, 자체의 사용자 인터페이스 요소를 자유롭게 실행시켜 탐색을 촉진시킬 수 있다.
열거(enumeration) : submissionMode
개별적(individual)
동시적(simultaneous)
제출 모드는 응시자의 응답이 응답 처리 과정에 언제 제출되는가의 여부를 결정한다. 개별 모드(individual mode)의 testPart는 응시자가 응답을 각각의 문항 별로 제출하도록 요구한다. 동시모드(simultaneous mode)에서는 응시자의 응답이 testPart의 종료시 모두 한번에 같이 제출된다.
제출 모드를 선택하면 각 문항 세션(item session)이 테스트 중에 거치는 단계가 결정된다. 동시 모드에서 응답 처리는 testPart가 완료될 때까지 실행되지 않으며, 따라서 각각의 문항 세션(item session)은 interacting과 중단(suspended) 상태 사이에서만 움직인다. 정의상으로 볼때 응시자는 각각의 문항에 대해 오직 한 번의 시도만 할 수 있으며 피드백은 테스트 중간에 보여지지 않는다. 응시자가 자신들이 제출한 정답을 검토할 수 있는 가의 여부 그리고/또는 테스트 이후에 문항 레벨 피드백을 확인할 수 있는 가의 여부는 이 표준의 범위를 벗어나는 내용이다. 동시 모드는 PBT(paper-based test)의 전형적인 양식이다.
개별 모드(individual mode)에서 응답 처리(response processing)는 테스트 중에 실행될 수 있는데 문항 세션(item session)은 Items 에서 설명된 상태를 통과할 수 있는데, 이는 작동 중인 itemSessionControl에 영향을 받는다. 개별(individual) 제출 모드와 비선형(nonlinear) 검색 모드의 공동작동을 지원하는 사용자 인터페이스 시스템을 설계할 때는 주의가 필요하다. 이 시스템에서 응시자는 문항에 대한 자신의 응답을 변경하고 테스트 내의 동일 부분의 다른 문항으로 이동하면서 그 응답을 중지(suspende) 상태로 남겨둘 수도 있다. 테스트 전송 시스템은 테스트 부분 종료 시점에 응답이 제출되지 않은 문항(전통적인 문서 형태의 편집 시스템에서 저장되지 않은 변경사항(unsaved change)과 유사함)이 있음을 응시자에게 분명하게 알려주어야 한다. 테스트 전송 시스템은 보다 적절하다면, 개별(individual) 모드에서 응시자가 다른 문항으로 옮겨가기 이전에 이들 응답을 제출 또는 폐기하도록 요청할 수 있다.
클래스(Class) :testPart
관련 클래스(Associated classes) : assessmentTest
속성 :identifier [1]: identifier
테스트 부분 식별자(identifier)는 반드시 테스트 내에서 유일한 것이라야 하며 다른 어떤 assessmentSection 또는 assessmentItemRef의 식별자일 수 없다.
속성(Attribute) : navigationMode [1]: navigationMode
속성(Attribute) : submissionMode [1]: submissionMode
포함(Contains) : preCondition [*]
테스트 중에 평가되는 조건의 선택적 세트로 이 부분이 건너띄어질 것인가를 결정한다.
포함(Contains) : branchRule [*]
테스트 중에 평가되는 규칙의 선택적 세트로써, 대체 타겟을 테스트의 다음 부분으로 설정한다.
포함(Contains) : itemSessionControl [0..1]
이 부분의 각 문항 세션(item session)에서 허용가능한 상태를 통제하기 위해 사용되는 파라미터. 이들 값은 섹션과 문항 레벨에서 덮어쓰기(override) 될 수 있다.
포함(Contains) : timeLimits [0..1]
테스트의 이 부분에서 응시자에게 허용된 시간분량을 선택적으로 통제한다.
포함(Contains) : assessmentSection [1..*]
각각의 testPart 에 포함된 문항들은 섹션과 하위 섹션 내에 정렬된다.
포함(Contains) : testFeedback [*]
테스트의 이 부분에 특정된 테스트 레벨 피드백
각각의 테스트 세션에서, 문항과 하위 문항들은 재중의 섹션에서 정의된 규칙에 따라 선택되고 순서대로 정렬된다. 이런 과정의 선택(selection)과 배열(ordering)은 매 세션마다 테스트의 각 부분에 대한 기본 구조를 지정한다. 응시자가 이런 구조를 통해 취할 수 있는 경로들은 그 후 테스트 부분에 대한 모드 세팅에 의해 통제되며, 나아가 테스트 세션 자체 과정 중에서 평가되는 preConditions와 branchRules에 의해서 제어된다.
그림 11.1 선택(selection) 및 배열(ordering)
이 그림은 테스트의 부분을 나타내며 문항이 섹션과 하위 섹션에서 구성되는 방법을 보여준다.
그림 11.2 선택(selection) 및 배열(ordering)
두 번째 그림은 선택(selection)과 배열(ordering) 규칙을 적용한 이후 동일한 테스트 부분의 특정 인스턴스(instance)를 보여준다. 섹션 S01 규칙은 S01A 과 S01B 중 하나를 선택하며, S02 규칙은 그 규칙에 의해서 포함된 문항들의 순서를 섞고, 최종적으로 S03 규칙은 그 규칙이 포함하고 그 결과를 섞는 3개 문항 중 2개를 선택한다.
클래스(Class) : selection
관련 클래스(Associated classes) : assessmentSection
선택(selection) 클래스는 각각의 테스트 세션을 위한 섹션의 자식 요소(child elements)를 선택하기위해 사용되는 규칙을 지정한다. 선택규칙이 주어지지 않았다면, 모든 요소들이 선택된 것으로 간주한다.
속성(Attribute) : select [1]: integer
선택될 자식 요소(child elements)의 갯수. 하위 섹션은 항상 1로 카운트 되며, 이는 하위 섹션이 얼마나 많은 갯수의 자식 요소를 갖는지 그리고 이들이 보이는 가의 여부와는 무관하다. 선택될 자식(children)의 갯수는 withReplacement이 참(true)인 경우에만 지정된 자식 요소의 갯수를 초과할 수 있다.
속성(Attribute) : withReplacement [0..1]: boolean = false
자식 요소(child elements)를 선택할 때, 각각의 요소가 일반적으로 단 한번만 선택 대상의 자격을 갖는다. 다른 말로 하면, {A,B,C,D} 에서 3개의 요소를 선택한다고 할 때, 가능한 결과들는 {A,B,C}, {A,B,D}, {A,C,D}, {B,C,D} 이다, withReplacement를 참(true)으로 설정함으로써, 각각의 요소는 선택대상으로서의 자격을 수 회 가질 수 있다. {A,B,C,D}에서 3개의 노드를 선택하면 {A,A,A}, {A,A,B} 등과 같은 조합결과를 거둘 수 있다.
selection 클래스는 또한 보다 복잡한 선택 알고리즘 지원을 포함해 이 표준까지의 확장을 위한 기회를 제공한다.
클래스(Class) : ordering
관련 클래스(Associated classes) :assessmentSection
ordering 클래스는 선택(selection) 작업에 이어서, 섹션의 자식 요소(child elements)를 배열하기 위해 사용되는 규칙을 지정한다. 배열(ordering) 규칙이 주어지지 않은 경우, 요소들은 지정된 순서로 정렬되는 것으로 간주한다.
속성(Attribute) : shuffle [1]: boolean = false
만약 허용(true)으로 설정된다면, 자식 요소(child elements)의 순서를 무작위로 만든다. 불허(false) 설정이면 자식 요소(child elements)가 지정된 순서를 사용한다.
하위 섹션은 선택을 위해 항상 단일 블럭으로 취급되지만, 이는 셔플링(shuffling)이 가시성에 의존할 때 취급되는 방식이다. 보여지는 하위 섹션은 항상 단일 블럭으로 취급되지만, 보이지 않는 하위 섹션은 그 섹션의 keepTogether 속성이 true인 경우에만 단일 블럭으로 취급된다. 그렇지 않다면, 보이지 않는 하위 섹션의 자식 요소(child elements)는 셔플링(shuffling)에 앞서 부모의 선택(parent’s slection)으로 혼합된다.
ordering 클래스는 또한 보다 복잡한 배열(ordering) 알고리즘 지원을 포함해 이 표준까지의 확장을 위한 기회를 제공한다.
선택(selection)과 배열(ordering) 규칙은 테스트 각 인스턴스(instance)에 해당하는 문항의 시퀀스를 지정한다. 시퀀스는 첫 번째 테스트 부분의 첫 번째 섹션의 첫 번째 문항과 함께 시작하며, 마지막 테스트 부분의 마직막 섹션의 마지막 문항까지 계속된다. 이 시퀀스는 테스트 내내 일관된다. 일반적으로 이것은 응시자가 인식한 논리적 시퀀스이지만, preConditions 또는 branchRules 의 사용은 선택된 특정 경로에 영향을 미친다.
교체(replacement)가 가능한 선택(selection)을 사용하면 동일한 assessmentItemRef가 언급한 한 문항의 두개 또는 그 이상의 인스턴스(instance)를 작동시켜 테스트의 문항 시퀀스에 나타나게 한다. 그러므로 그 문항을 branchRule의 타겟으로 정하는 건 오류이다. 나아가 테스트 결과를 보고할 때, 각 문항의 시퀀스 번호는 반드시 모호성을 피하여 보고되어야 한다. 결과 보고(Results Reporting) 참조
추상 클래스(Abstract class) :sectionPart
파생 클래스(Derived classes) : assessmentItemRef, assessmentSection, include
관련 클래스(Associated classes) : assessmentSection
개별 문항 참조(reference) 또는 하위 섹션과 함께 묶인 섹션들. 공통 파라미터 숫자는 자식 요소(child element)의 두 가지 유형이 공유한다.
속성(Attribute) : identifier [1]: identifier
섹션 또는 문항 참조(reference) 식별자(identifier)는 반드시 테스트 내에서 유일한 것이라야 하며 다른 어떤 testPart의 식별자일 수 없다.
속성(Attribute) : required [0..1]: boolean = false
만약 자식 요소(child element)가 요구된다면, 이 요소는 반드시 (적어도 한번은) 선택(selection)에 나타나야 한다. 만약 섹션이 필수 요소의 갯수 보다 적은 수의 자식 요소를 택하는 선택 규칙을 포함한다면 이것은 에러이다.
속성(Attribute) : fixed [0..1]: boolean = false
자식 요소(child element)가 고정(fixed)이면, 이 요소는 셔플(shuffle) 될 수 없다. 선택 규칙과 함께 사용될 때, 고정 요소는 선택이 실행될 때까지 자체의 위치를 고정할 수 없다. 예를 들어, 교체없이 {A,B,C,D} 중 3개의 요소를 선택하면 {A,B,C} 결과를 얻을 수 있다. 만약 섹션이 셔플링에 영향을 받을 수 있어도 B가 고정되어 있다면, {A,C,B}와 같은 치환(permutations)은 허용되지 않는 반면, {C,B,A}와 같은 치환은 허용된다.
포함(Contains) : preCondition [*]
테스트 중에 평가되는 조건의 선택적 세트로, 문항 또는 섹션이 건너 띄어질 수 있는 지를 결정한다. (비선형(nonlinear) 모드에서 사전조건(pre-conditions )은 무시된다.)
포함(Contains) : branchRule [*]
테스트 중에 평가되는 규칙의 선택적 세트로, 대체 타겟을 다음 문항 또는 섹션으로 설정하기 위한 것이다. (비선형(nonlinear) 모드에서 branch 규칙은 무시된다.)
포함(Contains) : itemSessionControl [0..1]
각 문항 세션(item session)에서 허용 가능한 상태를 통제하기 위해 사용되는 파라미터(하위 섹션 또는 문항 레벨에서 덮어쓰기(override)가 가능하다)
포함(Contains) : timeLimits [0..1]
이 문항 또는 섹션에 대해 응시자에게 허용되는 시간분량을 선택적으로 제어한다.
클래스(Class) : assessmentSection (sectionPart)
관련 클래스(Associated classes) :
testPart
속성(Attribute) : title [1]: string
섹션의 타이들은 섹션 콘테츠가 없는 상황에서 그 섹션이 선택될 수 있도록 만들어져 있다. 이 상황이란 예를 들어 응시자가 테스트를 검색하고 있는 상황이다. 따라서 전송 엔진은 이 타이틀을 테스트 중에 응시자에게 언제든 보여줄 수 있으나, 의무사항은 아니다.
속성(Attribute) : visible [1]: boolean
응시자가 식별가능한 가기성 섹션(visible section)이다. 예를 들어, 전송 엔진은 테스트에 계층적(hierarchical) view를 제공하여 검색을 도울 수 있다. 이러한 view에서는 비저블 섹션이 계층(hierarchy) 내의 가시성 노드가 될 것이다. 반대로 말해, 비가시성 섹션은 응시자에게 보이지 않는 다는 것이다—비가시성 섹션의 자식 요소(child element)는 부모(parent) 섹션(또는
testPart)의 일부인 것처럼 응시자에게 보여질 수 있다. 섹션의 가시성은 섹션의 자식 요소의 가시성에는 영향을 미치지 않는다. 각 섹션의 가시성은 오직 그 섹션 자체의 visible 속성에 의해 결정된다.
속성(Attribute) : keepTogether [0..1]: boolean = true
셔플링(shuffling)되기 쉬운 부모(parent)를 갖는 인비저블 섹션(invisible section)은 자식들, 응시자에게는 부모의 일부인 것처럼 보이게 될 이 자식들이 블럭으로 셔플될 것인지 또는 부모 섹션의 다른 자식들과 함께 섞일 것인 지를 결정한다.
포함(Contains) : selection [0..1]
섹션의 어떤 자식들(children)이 테스트의 각 인스턴스(instance)에 사용될 것인가를 선택하기 위해 사용되는 규칙들
포함(Contains) : ordering [0..1]
섹션의 어떤 자식들이 테스트의 각 인스턴스를 위해 어떤 순서로 정렬될 것인가를 결정하기 위해 사용되는 규칙들
각각의 섹션은 자체의 선택(selection)과 배열(ordering) 규칙을 갖고 있으며 섹션의 부모에 앞서 나타난다. 자식 섹션(child section)은 자체의 자식들의 순서를 셔플할 수도 있으며, 동시에 여전히 부모 섹션(parent section)을 셔플링할 때 이들 자식들을 함께 두도록 요청할 수 있다.
포함(Contains) : rubricBlock [*]
섹션 루브릭(section rubric)은 각 문항이 포함된(직접적으로 또는 간접적으로) 채 섹션에 의해 응시자에게 제시된다. 섹션은 중첩이 가능하기 때무에, 각 문항을 위해 제시된 루브릭은 탑 모스트(top-most) 섹션부터 문항의 즉각적으로 인클로징되는 섹션까지의 루브릭 블럭의 연속인 것이다.
포함(Contains) : sectionPart [*]
빈 섹션(empty section)은 선택(selection) 확장 매커니즘을 사용해 그 콘텐츠를 설명하는 섹션으로 간주된다.
클래스(Class) : assessmentItemRef (sectionPart)
문항은 직접적인 집합에 의해서가 아닌 참조(reference)에 의해서 테스트 안으로 통합된다. 그 참조의 식별자(identifier)가 이 테스트 밖의 다른 어떤 의미를 가질 필요가 없음을 명심한다. 특히, 다른 어떤 카탈로그의 콘텍스트 안에서 유일할 필요가 없으며 문항의 메타 데이터 안에 표시될 필요도 없다. 이 식별자의 형식(syntax)은 assessmentItem 자체의 식별자(identifier) 속성의 신텍스보다 제한적이다.
속성(Attribute) : href [1]: uri
문항의 파일(즉, 동일한 콘텐츠 패키지 안의 다른 곳)을 참조하기 위해 사용되는 uri. 이것이 유일해야 할 의무는 없다. 테스트는 동일한 문항을 테스트 내에서 여러 번 참조될 수 있다. 하지만 각각의 참조는 반드시 유일한 식별자(identifier)를 가져야 함에 유의한다.
속성(Attribute) : category [*]: identifier
문항들을 하나 또는 그 이상의 카테고리에 선택적으로 지정될 수 있다. 카테고리들은 결과 처리 과정에서 문항 결과의 맞춤(custom) 세트가 모아지도록 허용하는 일에 사용된다.
포함(Contains) : variableMapping [*]
변수 매핑(mapping)들은 이 테스트의 목적을 위한 문항 결과의 이름을 변경하기 위해 사용된다.
포함(Contains) : weight [*]
weights는 맞춤(custom) 값이 문항의 결과를 측정하기 위해 지정되도록 한다.
포함(Contains) : templateDefault [*]
템플릿 기본값은 테스트 레벨에서 평가된 표현(espression)을 기초로 한 문항에 의해 선언되는 템플릿 변수의 기본값을 변경하기 위해 사용된다. 추가 정보는 templateDefault 참조
클래스(Class) : weight
관련 클래스(Associated classes) : assessmentItemRef
개별 문항 점수가 전반적인 테스트 점수에 기여하는 바는 대개 테스트에 따라 다르게 나타난다. 문항의 점수는 'weighted' 되었다고 말한다. weights는 테스트 내의 문항(assessmentItemRef)에 대한 각각의 참조(reference)의 일부로 지정된다.
속성(Attribute) : identifier [1]: identifier
하나의 문항은 몇 개의 weights라도 가질 수 있으며, 각각의 웨이트에는 결과 처리 안의 웨이트를 참조하기 위해 사용되는 식별자(identifier)를 부여 받는다. (변수와 testVariables 참조)
속성(Attribute) : value [1]: float
weights는 부동 소수점(floating point) 값이다. 웨이트는 기본형 플로트(float) 또는 정수(integer) 기본형 결과 변수에 적용될 수 있다. 웨이트는 변수값이 결과 처리 중에 평가되는 시점에 적용된다. 그 결과는 항상 기본형 플로트를 갖는 것으로 처리되는데, 이는 변수 자체가 기본형 정수로 선언되었어도 마찬가지이다.
클래스(Class) : variableMapping
관련 클래스(Associated classes) : assessmentItemRef
변수 매핑은 해당 문항 안의 sourceIdentifier 이름과 함께 선언되는 결과 변수들이 마치 outcomeProcessing 중에 targetIdentifier 이름과 함께 선언된 것처럼 취급되도록 허용한다.
속성(Attribute) : sourceIdentifier [1]: identifier
속성(Attribute) : targetIdentifier [1]: identifier
클래스(Class) : templateDefault
관련 클래스(Associated classes) : assessmentItemRef
문항 안의 템플릿 변수 기본값은 템플릿이 예시된 테스트 콘텍스트를 기초로 덮어쓰기(override) 될 수 있다. 그 값은 테스트 레벨의 문항에 대한 참조(reference) 내에서 정의된 표현식(expression)을 평가함으로써 도출되며, 이는 테스트 내의 다른 문항에서 또는 테스트 레벨 자체에서 정의된 결과에서 취해진 변수값에 의존하게 될 수 있다.
지속적인 결과를 위해, 표현식(expression)의 시기적절한 평가가 매우 중요하다. assessmentItemRef가 선형(linear) 모드에서 검색되는 testPart에서 발생할 때, 표현은 첫 번째 시도 시작 이전에, 다른 사전조건(pre-condition)이 평가되고 발동된 후에, 하지만 문항 자체의 templateProcessing 규칙이 이어 따라오기 전에, 즉시 평가된다. 비선형(nonlinear) 모드에서 표현은 testPart의 시작 시에 평가된다. 두 경우 모두, 타이밍은 사실상 submissionMode에 영향을 받지 않는다. 응답 변수(response variable) 값이 제출되기 전에 사용되지 않도록, 결과 변수들이 그 값이 해당 응답 또는 결과 처리 단계에 의해 설정되기 전에 사용되지 않도록 보장하기 위해 각별한 주의가 필요하다.
속성(Attribute) : templateIdentifier [1]: identifier
영향을 받는 템플릿 변수의 식별자(identifier)
포함(Contains) : expression [1]
연결변수의 templateDeclaration 선언과 매칭되는 baseType과 다중성(cardinality)을 갖는 값을 결과로 거두어야 하는 표현
템플릿 덮어쓰기(override) 기본값의 기능은 문항 템플릿이 테스트 내의 다른 문항(또는 템플릿)에 링크되도록 하는 것이다. 한 문항에서의 응시자 응답은 직접적으로 사용되어 표현(presentation) 또는 이후에 제시되는 문항의 행동에 영향을 미칠 수 있다. 하지만 템플릿이 일단 예시되면 템플릿은 독립적으로 작동한다—문항들 사이에서 생성된 다이내믹 링크는 존재하지 않으며, 이들 간에 공유된 변수 공간(variable space)에 대한 개념도 존재하지 않는다.
클래스(Class) : timeLimits
관련 클래스(Associated classes) : assessmentTest, testPart, sectionPart
속성(Attribute) : minTime [0..1]: duration
속성(Attribute) : maxTime [0..1]: duration
특정 assessmentTest의 문맥(context) 안에서, 문항, 또는 문항의 그룹은 시간 제한의 영향을 받을 수 있다. 이 표준은 시간 제한의 최소치와 최대치를 모두 지원한다. 단일 문항을 위해 통제된 시간은, 내장형(built-in)응답 변수(response variable) duration에 의해 지정된 대로, 단순한 문항 세션(item session)의 duration이다. assessmentSections의 경우, 시간 제한(time limits)은 testParts와 전체 assessmentTests을 모든 문항 세션(item session)과 테스트의 그부분을 검색하는 데 소요되는 다른 시간을 더한 duration에 연결한다. 다른 말로, 그 시간은 문항이 상호작용하지 않는 단계, 검색(navigation) 스크린에 소요되는 시간 등을 포함한다는 것이다.
선형(linear) 검색 모드가 활동하고 있을 시에만 assessmentSections와 assessmentItems에 최소치 시간이 적용된다.
전송 엔진은 시간 제한이 적용 중일 때 각각의 테스트 부분에 소용된 시간을 추적하고 보고하도록 요구된다. 만약 주어진 테스트 부분 또는 섹션에 시간 제한이 작동 중이지 않다면, 그 시간을 추적하고 보고할 수는 있으나 이는 의무사항이 아니다. 마찬가지로 만약 시간제한 문항(Time Dependent Item)이 아닌 문항에 시간 제한이 작동 중이지 않다면, 이때 소요되는 시간은 보고될 수는 있으나 역시 의무사항이 아니다.
테스트에 소요된 시간은, 그 시간이 테스트 레벨에 선언된 duration으로 불리는 내장된(built-in)응답 변수(response variable)인 것처럼, 그리고 기본 유형(base-type) duration 과 단일 다중성(single cardinality)인 것처럼, 기록된다. 마찬가지로 테스트 부분 또는 섹션에 소요된 시간은 각각의 개별 범위 내에서 선언된 내장된(built-in) 응답 변수(response variable)처럼 취급된다. 이들 durations 값은 마침표가 붙는 부분 또는 섹션의 식별자와 함께, 앞서 지정된 변수 이름 duration을 사용함으로써 outcomeProcessing 중에 참조될 수 있다.
추상 클래스(Abstract class) :expression
파생 클래스(Derived classes) :
and, anyN, baseValue, containerSize, contains, correct, customOperator, default, delete, divide, durationGTE, durationLT, equal, equalRounded, fieldValue, gt, gte, index, inside, integerDivide, integerModulus, integerToFloat, isNull, lt, lte, mapResponse, mapResponsePoint, match, member, multiple, not, null, numberCorrect, numberIncorrect, numberPresented, numberResponded, numberSelected, or, ordered, outcomeMaximum, outcomeMinimum, patternMatch, power, product, random, randomFloat, randomInteger, round, stringMatch, substring, subtract, sum, testVariables, truncate, variable
관련 클래스(Associated classes) :
and, gt, ordered, divide, setCorrectResponse, random, responseIf, substring, member, equalRounded, outcomeIf, integerToFloat, lookupOutcomeValue, setTemplateValue, integerDivide, gte, index, durationLT, contains, durationGTE, branchRule, lt, match, patternMatch, product, multiple, power, outcomeElseIf, setDefaultValue, customOperator, stringMatch, setOutcomeValue, templateDefault, not, templateElseIf, integerModulus, subtract, responseElseIf, anyN, preCondition, round, containerSize, inside, equal, or, isNull, templateIf, lte, sum, truncate, fieldValue, delete
표현(expressions)은 값을 문항 변수(item variable)에 지정하기 위해서 사용되며 응답 및 템플릿 처리에서 조건적 행동(conditional actions)을 제어하기 위해 사용된다.
표현은 itemVariable의 값이거나, baseTypes이 지정하는 값 세트 중 하나에서 도출된 상수값(constant value), 또는 계층적(hierarchical) 표현 operator에 대한 단순 참조일 수 있다. itemVariables 처럼, 각각의 표현은 또한 특수값 NULL을 가질 수 있다.
이 절에서는 상수들, 무작위 값, itemVariables 값, 그리고 다음 클래스들을 다루기 위한 다수의 내장형(built-in) 일반적 표현을 설명한다.
클래스(Class) : baseValue (expression)
속성(Attribute) : baseType [1]: baseType
값의 기본 유형(base-type)
가장 단순한 표현식(expression)은 주어진 baseType이 지정하는 세트에서 도출된 단일(single)값을 반환한다.
클래스(Class) : variable (expression)
속성(Attribute) : identifier [1]: identifier
이 표현식(expression)은, 해당 variableDeclaration에서 선언되었거나 내장형(built-in) 변수 중의 하나인 itemVariable의 값을 찾는다. 결과는 기본 유형(base-type)을 가지며, 가중치 결과(weighted outcomes)의 형 확장(type promotion)에 영향을 받기 쉬운 변수를 위해 선언된 다중성(cardinality)을 갖는다. (아래 참조)
결과 처리 과정 중에, 개별 문항 세션(item session)에서 도출된 값은, 지정된 식별자와 함께 문항 변수(item variable)의 이름을 assessmentItemRef 안의 문항 앞에 붙임으로써 찾아지며, 이들은 마침표로 분리된다. 예를 들어, Q01로 불리는 문항 내의 SCORE 변수값을 도출하기 위해서는 식별자 Q01.SCORE를 갖는 변수 인스턴스를 사용해야 할 것이다.
응답 변수(response variable) 값을 찾을 때는, 항상 응시자의 마지막 제출에 의해 그 변수에 지정된 값이 필요하다. 제출되지 않은 응답은 표현식(expression) 중에는 이용할 수 없다.
동일한 assessmentItemRef (선택(selsection) withReplacement 를 사용하여)로부터 여러 번 예시된 문항에서 얻은 문항 변수(item variable) 값은, 만약 제출이 동시(simultaneous) 모드라면 마지막 인스턴스에서 도출된 것이며, 그렇지 않다면 그 값은 미지정된 것이다.
속성(Attribute) : weightIdentifier [0..1]: identifier
변수 값에 적용될 선택적인 가중치(weighting)이다. 가중치(weights)는 테스트 콘텍스트(test context)에서만 지정되며(따라서 오직 결과 처리에서만), 이는 오직 문항 식별자를 붙이는 기술(아래 참조)이 문항 변수(item variable)값을 찾기위해 사용될 때만이다. 가중치 식별자는 해당 assessmentItemRef 안의 가중치 정의를 참조한다. 일치하는 정의를 찾을 수 없는 경우, 가중치는 1.0으로 간주한다.
가중치는 기본형 정수(integer)와 플로트(float)를 갖는 문항 변수(item variable)에만 적용된다. 만약 문항 변수(item variable)가 다른 유형일 경우, 가중치는 무시된다. 모든 웨이트는 기본형 플로트(float)를 갖는 것으로 처리되며 그 결과값은 그 변수 값에 연결 가중치를 곱하여 얻는다. 가중치를 기본형 정수를 갖는 변수값에 적용시킬 때, 이 변수는 형 확장(type promotion)에 영향을 받으며 그 표현의 결과는 기본형 플로트를 갖는다.
클래스(Class) : default (expression)
속성(Attribute) : identifier [1]: identifier
이 표현은 itemVariable 선언을 찾고, 기본 값이 선언되지 않은 경우 연결 defaultValue 또는 NULL 을 반환한다. 결과처리에 사용되는 경우, 문항 식별자 붙이기(변수 참조)가 개별 문항에서 기본값을 얻기 위해 사용될 수 있다.
클래스(Class) : correct (expression)
속성(Attribute) : identifier [1]: identifier
이 표현은 응답 변수(response variable) 선언을 찾고, 기본 값이 선언되지 않은 경우 연결 correctResponse 또는 NULL을 반환한다. 결과처리에 사용되는 경우, 문항 식별자 붙이기(변수 참조)가 개별 문항에서 기본값을 얻기 위해 사용될 수 있다.
클래스(Class) : mapResponse (expression)
속성(Attribute) : identifier [1]: identifier
이 표현은 응답 변수(response variable) 값을 찾고 난뒤 연결 매핑을 사용하여 그 변수를 변환하는데, 이는 반드시 선언되었어야 한다. 결과는 단일 플로트(float)이다. 응답 변수(response variable)가 단일 다중성(single cardinality)을 갖는 다면, 반환값은 맵에서 도출된 단순한 매핑 타겟 값이다. 응답 변수(response variable)가 다중(multiple) 또는 순차적 다중성(ordered cardinality)을 갖는 다면, 반환값은 매핑된 타겟 값의 합이 된다. 이 표현은 레코드 다중성(record cardinality) 변수에는 적용될 수 없다.
예를 들어, 매핑이 식별자{A,B,C,D}와 값{0,1,0.5,0}을 각각 연결할 때, mapResponse는 단일 값 'C' 를 숫자 값 0.5에 매핑하고 값 세트{C,B}을 값1.5에 매핑할 것이다.
만약 컨테이너가 동일 값의 인스턴스를 다수 갖는다면, 그 값은 단 한번만 카운트 된다. 위의 예를 계속하면 {B,B,C}는 2.5가 아닌 1.5에 매핑되는 것이다.
클래스(Class) : mapResponsePoint (expression)
속성(Attribute) : identifier [1]: identifier
이 표현은 기본 유형(base-type)이 포인트(point)이어야 하는 응답 변수(response variable) 값을 찾아서 연결areaMapping을 이용해 그 값을 변환한다. 이 변환은 mapResponse와 유사하지만, 포인트가 각각의 영역에서 차례대로 테스트 된다는 점이 예외이다. 컨테이너를 매핑할 때, 각각의 영역은 단 한번만 매핑될 수 있다. 예를 들어, 응시자가 동일 영역에 해당하는 두 개의 포인트를 파악했다면, mappedValue은 그래도 계산된 총합에 한 번만 추가된다.
클래스(Class) : null (expression)
null은 NULL값을 반환하는 단순 표현이다—null 값은 다른 어떤 원하는 baseType인 것처럼 취급된다.
클래스(Class) : randomInteger (expression)
일부 정수 n을 위한 min + step * 을 만족하는 지정된 범위 [min,max]에서 무작위 정수를 선택한다. 예를 들어, min=2, min=2, max=11, step=3 으로는, 값 {2,5,8,11}이 가능하다.
속성(Attribute) : min [1]: integerOrTemplateRef = 0
속성(Attribute) : max [1]: integerOrTemplateRef
속성(Attribute) : step [0..1]: integerOrTemplateRef = 1
클래스(Class) : randomFloat (expression)
지정된 범위[min,max]에서 무작위 플로트(float)를 선택한다.
속성(Attribute) : min [1]: floatOrTemplateRef = 0
속성(Attribute) : max [1]: floatOrTemplateRef
이 섹션은 outcomeProcessing 에서만 사용될 수 있는 다수의 내장형(built-in) 표현을 설명한다. 이 표현들은 assessmentTest 에서 참조된 문항 세트에 대한 정보를 반환한다.
추상 클래스(Abstract class) :itemSubset
파생 클래스(Derived classes) :
numberCorrect, numberIncorrect, numberPresented, numberResponded, numberSelected, outcomeMaximum, outcomeMinimum, testVariables
이 클래스는 assessmentTest에서 선택된 문항의 하위 세트에 대한 개념을 정의한다. 이 속성들은 하위 세트의 모든 멤버에 의해 일치되어야 하는 기준을 정의한다. 이는 테스트 전체에 대한 또는 그 테스트의 임의적 하위세트에 대한 정보를 반환하기 위한 outcomeProcessing내의 여러 표현들을 제어하기 위해 사용된다.
속성(Attribute) : sectionIdentifier [0..1]: identifier
지정되었다면, 오직 매칭 식별자를 갖는 assessmentSection의 문항에서 도출된 변수만이 매칭된다. 하위 섹션에 있는 문항은 이 정의에 포함된다.
속성(Attribute) : includeCategory [*]: identifier
지정되었다면, 매칭 범주(category)를 갖는 문항에서 도출된 변수만이 포함된다.
속성(Attribute) : excludeCategory [*]: identifier
지정되었다면, 매칭 범주(category)를 갖지 않는 문항에서 도출된 변수 만이 포함된다.
클래스(Class) : testVariables (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 이와 동시에 테스트에 참조된 문항의 하위 세트의 itemVariable 값을 찾는다. 단일 다중성(single cardinality)를 갖는 변수 만이 고려대상이 되며, 모든 NULL 값은 무시된다. 결과는 아래 지정된 것처럼 중복 다중성(cardinality multiple)과 기본 유형(base-type)을 갖는다.
속성(Attribute) : variableIdentifier [1]: identifier
각 문항에서 찾을 변수 식별자. 만약 테스트가 다른 변수 네이밍 규칙(naming conventions)들을 합하는 경우, variableMappings이 결과 처리의 복잡성을 낮추고 단일 testVariables 표현의 사용을 허용하는 데 이용될 수 있다. 매칭 변수를 갖지 않는 문항은 무시된다.
속성(Attribute) : baseType [0..1]: baseType
지정된 경우 이 baseType과 함께 선언된 변수에만 부합한다. 이는 또한 결과의 기본 유형(base-type)이 된다. (아래 설명처럼 웨이팅을 통한 형 확장(type promotion)에 영향을 받는다). 생략되었다면, 기본 유형(base-type) 정수(integer) 또는 플로트(float)와 함께 선언된 변수들만이 부합된다. 모든 매칭값이 기본 유형(base-type) 정수를 갖는 경우, 결과의 기본 유형은 정수며, 그렇지 않은 경우는 플로트(float)이고, 정수 값은 형 확장에 따라 영향을 받는다.
속성(Attribute) : weightIdentifier [0..1]: identifier
지정된 경우, 정의된 가중치(weight)는 단일 변수를 위한 weightIdentifier의 정의에서 설명된 각각의 변수에 적용된다. 이 속성의 행동은 baseType이 플로트이거나 생략되었을 경우에만 지정된다. 가중치가 지정되었을 때, 표현의 결과는 항상 기본 유형(base-type) 플로트(float)를 갖는다.
클래스(Class) : outcomeMaximum (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 이와 동시에 테스트에 참조된 문항의 하위 세트 내 결과 변수의 normalMaximum 값을 찾는다. 단일 다중성(single cardinality)을 갖는 변수 만이 고려대상이 된다. 만약 주어진 하위 세트 내에서 문항 중 그 어떤 것이라도 선언된 maximum을 갖지 않는다면, 결과는 NULL이며, 그렇지 않은 경우 결과는 다중 중복성(cardinality multiple)과 기본 유형(base-type) 플로트(float)를 갖는다.
속성(Attribute) : outcomeIdentifier [1]: identifier
testVariables의 variableIdentifier 속성을 따른다.
속성(Attribute) : weightIdentifier [0..1]: identifier
testVariables의 weightIdentifier 속성을 따른다.
클래스(Class) : outcomeMinimum (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 이와 동시에 테스트에 참조된 문항의 하위 세트 내 결과 변수의 normalMinimum 값을 찾는다. 단일 다중성(single cardinality)을 갖는 변수 만이 고려대상이 되며, 선언된 minimum을 갖지 않는 문항은 무시된다. 결과는 다중 중복성(cardinality multiple)과 기본 유형 플로트(base-type float)를 갖는다.
속성(Attribute) : outcomeIdentifier [1]: identifier
testVariables의 variableIdentifier 속성을 따른다.
속성(Attribute) : weightIdentifier [0..1]: identifier
testVariables의 weightIdentifier 속성을 따른다.
클래스(Class) : numberCorrect (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 주어진 하위 세트의 문항 갯수를 계산하며, 이 문항의 경우 모든 지정된 응답 변수(response variable)들이 그들의 연결 correctResponse와 부합한다. 모든 선언된 응답 변수(response variable)가 correctResponses를 지정한 문항만이 고려대상이 된다. 결과는 단일 다중성(single cardinality)을 갖는 정수(integer)이다.
클래스(Class) : numberIncorrect (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 주어진 하위 세트의 문항 갯수를 계산하며, 이 문항의 경우 지정된 응답 변수(response variable) 중 적어도 하나는 그것의 연결 correctResponse와 부합하지 않는다. 모든 지정된 응답 변수(response variable)가 correctResponses를 지정하고 적어도 한번은 시도되었던 문항만이 고려대상이 된다. 결과는 단일 다중성(single cardinality)을 갖는 정수(integer)이다.
클래스(Class) : numberResponded (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 시도된 적 있고(적어도 한번) 응답이 제출된 적 있는 주어진 하위 세트의 문항 갯수를 계산한다. 다른 말로 하면, 적어도 하나의 선언된 응답이 선언된 기본값(보통 NULL )과 다른 값을 갖는 문항을 뜻한다. 결과는 단일 다중성(single cardinality)을 갖는 정수(integer)이다.
클래스(Class) : numberPresented (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 시도된 적 있는(적어도 한번), 주어진 하위 세트의 문항 갯수를 계산한다. 다른 말로 하면, 응답여부에 상관없이 사용자가 상호작용을 한 문항을 뜻한다. 결과는 단일 다중성(single cardinality)을 갖는 정수(integer)이다.
클래스(Class) : numberSelected (expression, itemSubset)
이 표현은, 결과 처리에만 사용될 수 있는데, 시도 여부에 상관없이 응시자에게 제시되기 위해 선택되었던, 주어진 하위 세트의 문항 갯수를 계산한다. 결과는 단일 다중성(
single cardinality)을 갖는 정수(integer)이다.
operator는, 단일 하위 표현식을 수정하여 또는 두 개 또는 그 이상의 하위 표현식들을 지정된 방식으로 조합하여 자기 값(결과로 불림)을 도출하는 표현(expression)에서 파생한 클래스 패밀리이다. operator는 itemVariables 값에 직접적으로 영향을 절대로 미치지 않으며, 다시 말해 ‘부작용(side effects)’이 없다.
모든 operator는 baseType과 다중성(cardinality)을 갖는데, 다만 이들은 자신들이 포함하고 있는 하위 표현식에 의존할 수도 있다.
클래스(Class) : multiple (expression)
포함(Contains) : expression [*]
다중(multiple) operator는 0 또는 그 이상의 하위 표현식을 갖는데, 이들은 모두 단일(single) 또는 다중 중복성(multiple cardinality)을 가져야 한다. 비록 하위 표현식들이 어떠한 기본 유형(base-type) 일 수도 있으나, 이들은 반드시 동일한 기본 유형(base-type)이라야 한다. 결과는 하위 표현식값을 포함하는 다중 중복성(multiple cardinality)을 갖는 컨테이너로, 다중 중복성을 갖는 하위 표현식은 자신의 개별 값을 결과에 추가시킨다: 컨테이너들은 다른 컨테이너들을 포함할 수 없다. 예를 들어 A, B,{C,D}에 적용될 때, 다중 operator는 {A,B,C,D}라는 결과를 거둔다. NULL값을 갖는 모든 하위 표현식은 무시된다. 하위 표현식이 주어지지 않았다면(또는 모두 NULL이면), 결과는 NULL이다.
클래스(Class) : ordered (expression)
포함(Contains) : expression [*]
순차적(ordered) operator는 0 또는 그 이상의 하위 표현식을 갖는데, 이들은 모두 단일(single) 또는 순차적 다중성(ordered cardinality)을 가져야 한다. 비록 하위 표현식들이 어떠한 기본 유형(base-type) 일 수도 있으나, 이들은 반드시 동일한 기본 유형(base-type)이라야 한다. 결과는 하위 표현식값을 포함하는 순차적 다중성을 갖는 컨테이너로, 순차적 다중성을 갖는 하위 표현식은 자신의 개별 값을 결과에 추가(순서대로)시킨다: 컨테이너들은 다른 컨테이너들을 포함할 수 없다. 예를 들어 A, B,{C,D}에 적용될 때, 순차적 operator는 {A,B,C,D}라는 결과를 거둔다. 순차적 operator는 빈 컨테이너를 갖지 않음을 명심한다. NULL값을 갖는 모든 하위 표현식은 무시된다. 하위 표현식이 주어지지 않았다면(또는 모두 NULL이면), 결과는 NULL이다.
클래스(Class) : containerSize (expression)
포함(Contains) : expression [1]
containerSize operator는 어떤 하나의 기본 유형(base-type)과 다중(multiple) 또는 순차적 다중성(ordered cardinality) 중의 하나를 갖는 하위 표현식을 취한다. 결과는 하위 표현식에 값 갯수를 부여하는 정수(integer), 다시 말해 컨테이너의 사이즈이다. 만약 하위 표현식이 NULL이면 결과는 0이다. 이 operator는 예를 들어, 다중-응답 choiceInteraction 에서 선택할 수 있는 갯수를 결정하는데 사용될 수 있다.
클래스(Class) : isNull (expression)
포함(Contains) : expression [1]
isNull operator는 어떤 하나의 기본 유형(base-type)과 다중성(cardinality)을 갖는 하위 표현식을 취한다. 하위 표현식이 NULL이거나 그렇지 않으면 불허(false)인 경우, 결과는 참(true) 값을 갖는 단일 논리(boolean)이다. 빈 컨테이너와 빈 문자열은 모두 NULL로 취급된다는 점을 명심한다.
클래스(Class) : index (expression)
속성(Attribute) : n [1]: integer
포함(Contains) : expression [1]
index operator는 어떤 하나의 기본 유형(base-type)과 순차적(ordered) 컨테이너 값을 갖는 하위 표현식을 취한다. 결과는 컨테이너의 n번째(nth) 값이다. 결과는 하위 표현식과 동일한 기본 유형(base-type)를 가져야 하지만 단일 다중성(single cardinality)라야 한다. 컨테이너의 첫 번째 값이 색인 1을 갖고, 두 번째 값은 2를 갖는 식으로 된다. n 은 반드시 양의 정수(integer)라야 한다. n이 컨테이너 안 값의 갯수를 초과하면, 색인 operator의 결과는 NULL이다.
클래스(Class) : fieldValue (expression)
속성(Attribute) : fieldIdentifier [1]: identifier
선택대상 필드의 식별자
포함(Contains) : expression [1]
field-value operator는 레코드(record) 컨테이너 값을 갖는 하위 표현식을 취한다. 결과는 지정된 fieldIdentifier를 갖는 필드값이다. 이 식별자를 갖는 필드가 없다면, operator의 결과는 NULL이다.
클래스(Class) : random (expression)
포함(Contains) : expression [1]
random operator는 다중(multiple) 또는 순차적(ordered) 컨테이너 값과 어떠한 기본 유형(base-type)을 갖는 하위 표현식을 취한다. 결과는 컨테이너에서 무작위로(randomly) 선택한 단일 값이다. 이 결과는 하위 표현식과 동일한 기본 유형(base-type)을 갖지만 단일 다중성(single cardinality)를 갖는다. 만약 하위 표현식이 NULL 이면 결과 또한 NULL이다.
클래스(Class) : member (expression)
포함(Contains) : expression [2]
member operator는 동일한 기본 유형(base-type)을 갖는 두 개의 하위 표현식을 취한다. 첫 번째 하위 표현식은 반드시 단일 다중성(single cardinality)을 가져야 하며 두 번째는 다중(multiple) 또는 순차적(ordered) 컨테이너라야 한다. 만약 첫 번째 하위 표현식이 부여한 값이 두 번째 하위 표현식이 지정한 컨테이너 안에 있다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이다. 만약 둘 중 어느 하나가 NULL이면, operator 결과는 NULL이다.
멤버 operator는 값들 간의 비교가 불충분하게 정의되기 때문에 플로트(float) 기본 유형(base-type)를 갖는 하위 표현식에 사용될 수 없다. 실행시간(duration) 기본 유형(base-type)를 갖는 하위 표현식에 사용되어서는 안된다.
클래스(Class) : delete (expression)
포함(Contains) : expression [2]
delete operator는 동일한 기본 유형(base-type)을 갖는 두 개의 하위 표현식을 취한다. 첫 번째 하위 표현식은 반드시 단일 다중성(single cardinality)를 가져야 하며 두 번째는 다중(multiple) 또는 순차적(ordered) 컨테이너라야 한다. 결과는 첫 번째 하위 표현식의 모든 인스턴스가 제거된 두 번째 하위 표현식에서 추출된 새 컨테이너다. 예를 들어, A 와 {B,A,C,A}를 적용할 때, 결과는 컨테이너 {B,C}이다. 만약 둘 중 어느 하나가 NULL이면, operator 결과는 NULL이다.
멤버(member) operator에 적용되는 제한은 삭제(delete)operator에도 적용된다.
클래스(Class) : contains (expression)
포함(Contains) : expression [2]
contains operator는 두 개의 하위 표현식을 취하며, 이 둘은 모두 동일한 기본 유형(base-type)과 cardinality-- 다중(multiple) 또는 순차적(ordered) 중의 하나—을 가져야 한다. 만약 첫 번째 하위 표현식이 부여한 컨테이너가 두 번째 하위 표현식이 부여한 값을 포함한다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 그렇지 않으면 불허(false)이다. 포함 operator는 이 두 하위 표현식의 다중성(cardinality)에 따라 다르게 작동할 수 있음을 명심한다. 비순차적(unordered) 컨테이너의 경우, 그 값들은 배열(ordering)에 관계없이 비교된다. 예를 들어, [A,B,C] 는 [C,A]를 포함하는 것이다. [A,B,C]가 [B,B]을 포함하지는 않지만 [A,B,B,C]는 [B,B]를 포함한다는 점을 명심한다. 순차적(ordered) 컨테이너의 경우, 두 번째 하위 표현식은 첫 번째 하위 표현식식내에서 반드시 하위 시퀀스(sub-sequence)라야 한다. 다시 말해, [A,B,C]는 [C,A]를 포함하지 않지만 [B,C]를 포함한다는 것이다.
둘 중 하나의 하위 표현식이 NULL이면, operator 결과는 NULL이다. 멤버 operator와 마찬가지로, contains operator는 플로트(float) 기본 유형(base-type)을 갖는 하위 표현식에 사용되어서는 안되며 실행시간(duration) 기본 유형(base-type)을 갖는 하위 표현식에 사용될 수 없다.
클래스(Class) : substring (expression)
포함(Contains) : expression [2]
substring operator는 두 개의 하위 표현식을 취하며, 이 둘은 모두 문자열(string)과 단일 다중성(single cardinality)의 유효한 기본 유형(base-type)을 가져야 한다. 만약 첫 번째 하위 표현식이 두 번째 하위 표현식의 하위 문자열인 경우, 결과는 true 값을 갖는 단일 논리(boolean)이며, 그렇지 않다면 결과는 불허(false)이다. 만약 둘 중 어느 하나가 NULL이면, operator 결과는 NULL이다.
속성(Attribute) : caseSensitive [1]: boolean = true
하위 문자열(substring)의 대소문자 구별을 통제하기 위해 사용된다. 참(true)이면 대소문자를 구별한다. 예를 들어, "Hell"은 "Shell"의 하위 문자열이 아니다. 불허(false)이면, 대소문자를 구별하지 않으므로, "Hell"이 "Shell"의 하위 문자열이다.
클래스(Class) : not (expression)
포함(Contains) : expression [1]
not operator는 논리(boolean)와 단일 다중성(single cardinality)의 기본 유형(base-type)을 갖는 단일 하위 표현식을 취한다. 결과는 하위 표현식값의 논리부정으로 도출된 값을 갖는 단일 논리(boolean)이다. 이 하위 표현식이 NULL이면, not operator는 또한 NULL의 결과를 갖는다.
클래스(Class) : and (expression)
포함(Contains) : expression [1..*]
and operator는 하나 또는 그 이상의 하위 표현식을 취하며, 각각 논리(boolean)와 단일 다중성(single cardinality)의 기본 유형(base-type)을 갖는다. 만약 모든 하위 표현식이 참(true)이면 결과는 참(true) 값을 갖는 단일 논리(boolean) 이고, 어느 하나의 표현식이 false 이면 단일 불리언이 불허(false)이다. 만약 하나 또는 그 이상의 하위 표현식이 NULL이고 모든 다른 표현식이 참(true)이면, operator 결과는 NULL이다.
클래스(Class) : or (expression)
포함(Contains) : expression [1..*]
or operator는 하나 또는 그 이상의 하위 표현식을 취하며, 각각 논리(boolean)와 단일 다중성(single cardinality)의 기본 유형(base-type)을 갖는다. 결과는, 만약 하위 표현식 중 하나라도 참(true)이면 단일 논리(boolean)는 참(true)이고, 모든 표현식이 불허(false)이면 단일 논리가 불허(false)이다. 만약 하나 또는 그 이상의 하위 표현식이 NULL이고 모든 다른 표현식이 불허(false)이면, operator 결과는 NULL이다.
클래스(Class) : anyN (expression)
포함(Contains) : expression [1..*]
anyN operator는 하나 또는 그 이상의 하위 표현식을 취하며, 각각 논리(boolean)와 단일 다중성(single cardinality)의 기본 유형(base-type)을 갖는다. 하위 표현식 중 적어도 min이 참(true)이고 많아야 max가 참(true)이면, 단일 논리(boolean)는 참(true)이다. 만약 n – min보다 많은 수의 하위 표현식이 불허(false)이고 (n은 하위 표현식의 총합이라고 할 때) 또는 max 보다 많은 하위 표현식이 참(true) 이면, 결과는 불허(false)이다. 하나 또는 그 이상의 하위 표현식이 NULL이면, 이들 조건 중 그 어느 것도 만족되지 않을 가능성이 있으며, 이 경우 operator 결과는 NULL이다. 예를 들어, min이 3이고 max 가 4이면서, 하위 표현식의 값이 {true, true, false, NULL}이면, operator 결과는 NULL이다. 반면 {true, false, false, NULL} 값의 결과는 불허(false)이며, {true,true,true,NULL}은 참(true)이다. 결과가 NULL이라는 것은 operator의 바른 값(correct value)을 결정할 수 없음을 의미한다.
속성(Attribute) : min [1]: integerOrTemplateRef
반드시 true 라야 하는 하위 표현식의 최소치
속성(Attribute) : max [1]: integerOrTemplateRef
true 일 수 있는 하위 표현식의 최대치
클래스(Class) : match (expression)
포함(Contains) : expression [2]
match operator는 두 개의 하위 표현식을 취하며, 이 둘은 반드시 동일한 기본 유형(base-type)과 다중성(cardinality)을 가져야 한다. 결과는, 만약 두 표현식이 같은 값을 나타내면 단일 논리(boolean)는 참(true)이고, 나타내지 못하면 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
match operator는 수량적 평등(numerical equality) 같은 등가성(equality)의 광의적 개념과 혼동되어서는 안된다. 이를 방지하기 위해서 match operator는 하위 표현식을 플로트(float) 기본 유형(base-type)과 비교하는 데 사용되어서는 안되며, 실행시간(duration) 기본 유형(base-type)를 갖는 하위 표현식에 사용되어서는 안 된다.
클래스(Class) : stringMatch (expression)
포함(Contains) : expression [2]
stringMatch operator는 두 개의 하위 표현식을 취하며, 이 둘은 반드시 단일의 문자열(
string) 기본 유형(base-type)을 가져야 한다. 결과는, 만약 두개의 문자열이 아래 속성이 지정한 비교규칙을 토대로 일치(match)하면 단일 논리(boolean)는 참(true)이고, 일치(match)하지 않으면 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
속성(Attribute) : caseSensitive [1]: boolean
매치(match)가 대소문자 구별로 실행될 것인가의 여부
속성(Attribute) : substring [0..1]: boolean = false
이 속성은 현재 권장되지 않으며(deprecated), substring operator가 대신 사용되어야 한다. 참(true)이면 첫 번째 문자열이 두 번째 문자열을 포함하는 경우 비교(comparison) 연산자가 "true"를 반환하는데, 그렇지 않으면 문자열이 전부 일치해야 "ture"를 반환한다.
클래스(Class) : patternMatch (expression)
포함(Contains) : expression [1]
patternMatch operator는 하나의 하위 표현식을 취하는데, 이는 반드시 단일 중복성(single cardinality)과 문자열(string) 기본 유형(base-type)을 가져야 한다. 결과는, 만약 하위 표현식이 패턴(pattern)이 제시한 정규 표현식(regular expression)에 부합하면, 단일 논리(boolean)는 참(true)이며, 부합하지 않는다면 불허(false)이다. 만약 하위 표현식이 NULL이면, operator 결과는 NULL이다.
속성(Attribute) : pattern [1]: stringOrTemplateRef
정규 표현식(regular expression) 언어의 신텍스는 [XML_SCHEMA2]의 첨부F에 지정된 것과 같다.
클래스(Class) : equal (expression)
포함(Contains) : expression [2]
equaloperator는 두 개의 하위 표현식을 취하며 둘 다 반드시 단일 중복성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 두 표현식이 수치적으로 동등한 경우 결과는 true 값을 갖는 단일 불리언(boolean)이며, 동등하지 않은 경우, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
속성(Attribute) : toleranceMode [1]: toleranceMode = exact
두 개의 부동 소수점(floating point) 숫자를 등가 비교할 때, 채점에서 반올림 오류(rounding error)로 인해 거짓 오류(spurious error)가 발생하지 않도록 공차(tolerance)를 두는 것이 종종 바람직할 수 있다. 이러한 공차모드(tolerance mode)는 비교 연산이 정확하게 실행되는 가를 절대적 범위(absolute range) 또는 상대적 범위(relative range)를 사용하여 판단한다.
속성(Attribute) : tolerance [0..2]: floatOrTemplateRef
공차 모드가 절대적(absolute) 또는 상대적(relative)이면, 이 공차(tolerance)는 반드시 구체적으로 명시되어야 한다. 공차는 두 개의 양의 수, t0 과 t1로 구성되며, 이는 하한(lower bound)와 상한(upper bound)를 정의한다. 값이 하나만 주어졌다면, 둘 다를 위해 쓰인다.
절대적 모드(absolute mode)에서, 두 번째 표현식, y가, 첫 번째 값 x 가 정의한 다음 범위 내에 있다면, 비교연산의 결과는 참(true)이다.
x-t0,x+t1
상대적 모드(relative mode)에서, t0 과 t1는 퍼센티지로 취급되며, 다음 범위가 대신 사용된다.
x*(1-t0/100),x*(1+t1/100)
속성(Attribute) : includeLowerBound [0..1]: boolean = true
하한(lower bound)이 비교연산에 포함될 것인가의 여부를 통제한다.
속성(Attribute) : includeUpperBound [0..1]: boolean = true
상한(upper bound)이 비교연산에 포함될 것인가의 여부를 통제한다.
열거(Enumeration) : toleranceMode
exact
absolute
relative
클래스(Class) : equalRounded (expression)
포함(Contains) : expression [2]
equalRounded operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 중복성(single cardinality)과 숫자형 기본 유형(numerical base-type) 을 갖는다. 두 표현식이 반올림 이후에 수치적으로 동등한 경우, 결과는 true 값을 갖는 단일 논리(boolean)이며, 동등하지 않은 경우, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
속성(Attribute) : roundingMode [1]: roundingMode = significantFigures
숫자들은 significantFigures 또는 decimalPlaces의 주어진 수로 반올림된다.
속성(Attribute) : figures [1]: integerOrTemplateRef
반올림할 숫자의 갯수
예를 들어, 두 값이 1.56 과 1.6이고, significantFigures가 figures=2 와 함께 사용되면, 결과는 참(true)이 된다.
열거(Enumeration) : roundingMode
significantFigures
decimalPlaces
클래스(Class) : inside (expression)
포함(Contains) : expression [1]
inside operator는 포인트(point)의 baseType을 가져야 하는 단일 하위 표현식을 취한다. 결과는, 주어진 포인트가 shape와 coords가 지정한 영역 내에 있다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이다. 만약 하위 표현식이 컨테이너라면, 결과는 참(true)이고, 어떤 포인트 라도 영역 안에 있다면, 결과는 참(true)이다. 어느 한 쪽의 하위 표현식이 NULL이면, operator 결과는 NULL이다.
속성(Attribute) : shape [1]: shape
영역의 shape
속성(Attribute) : coords [1]: coords
영역의 사이즈와 포지션으로 shape와 함께 해석된다.
클래스(Class) : lt (expression)
포함(Contains) : expression [2]
It operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 중복성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 첫 번째 표현식이 수치적으로 두 번째 표현식보다 작다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 크거나 동일하다면, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
클래스(Class) : gt (expression)
포함(Contains) : expression [2]
gt operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 다중성(single cardinality)와 숫자형 기본 유형(numerical base-type)을 갖는다. 첫 번째 표현식이 수치적으로 두 번째 표현식보다 크다면, 결과는 true 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 작거나 동일하다면, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
클래스(Class) : lte (expression)
포함(Contains) : expression [2]
lte operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 다중성(single cardinality)와 숫자형 기본 유형(numerical base-type)을 갖는다. 첫 번째 표현식이 수치적으로 두 번째 표현식보다 작거나 동일하다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 크다면, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
클래스(Class) : gte (expression)
포함(Contains) : expression [2]
gte operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 다중성(single cardinality)와 숫자형 기본 유형(numerical base-type)을 갖는다. 첫 번째 표현식이 수치적으로 두 번째 표현식보다 작거나 동일하다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 크다면, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
클래스(Class) : durationLT (expression)
포함(Contains) : expression [2]
durationLT operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 다중성(single cardinality)와 기본 유형(base-type) 실행시간(duration)을 갖는다. 첫 번째 실행시간이 두 번째 실행시간보다 짧다면, 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 길다면(또는 동일하면), 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
'durationLTE' 이나 'durationGT' 은 존재하지 않는다. 이는 실행시간이 허용하는 변수의 정확성을 감안할 때 실행시간의 동등성(equality)은 무의미하기 때문이다. 실행시간 값이 반올림(rounding)하기 보다는 잘라내기(truncation)에 의해 도출된다는 점을 고려할 때, 보다 작은 것만 또는 크거나 같은 부등식(inequality) 만을 테스트 하는 것이 합리적이다. 예를 들어, 만약 엡실론(epsilon) 초(epsilon<1)의 resolution에 실행시간을 보고하는 시스템에서 한 응시자가 과제를 10초 내에 마칠 수 있는 가를 결정하고자 할 때, 10과 동일한 값은 그 범위[10,10+epsilon) 안에 있는 모든 실행시간을 다룰 것이다.
클래스(Class) : durationGTE (expression)
포함(Contains) : expression [2]
durationGTE operator는 두 개의 하위 표현식을 취하며, 이들은 반드시 단일 다중성(single cardinality)와 기본 유형(base-type) 실행시간(duration)을 갖는다. 첫 번째 실행시간이 두 번째 실행시간보다 길다면(또는 동일하다면, 위에서 설명한 잘라내기(truncation)이 부여한 제한 내에서), 결과는 참(true) 값을 갖는 단일 논리(boolean)이며, 두 번째 표현식보다 짧다면, 불허(false)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
실행시간의 동등성(equality) 평가에 대한 추가 정보는 durationLT 참조
클래스(Class) : sum (expression)
포함(Contains) : expression [1..*]
sum operator는 하나 또는 그 이상의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 결과는 단일 플로트(float)이거나, 만약 모든 하위 표현식이 정수(integer) 유형이면, 결과는 하위 표현식들의 숫자값의 합(sum)에 해당하는 단일 정수이다. 표현식 중 어느 하나라도 NULL이면 operator 결과는 NULL이다.
클래스(Class) : product (expression)
포함(Contains) : expression [1..*]
product operator는 하나 또는 그 이상의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 결과는 단일 플로트(float)이거나, 만약 모든 하위 표현식이 정수(integer) 유형이면, 결과는 하위 표현식들의 숫자값의 product에 해당하는 단일 정수이다. 표현식 중 어느 하나라도 NULL이면 operator 결과는 NULL이다.
클래스(Class) : subtract (expression)
포함(Contains) : expression [2]
subtract operator는 두 개의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 결과는 단일 플로트(float)이거나, 만약 두 하위 표현식이 모두 정수(integer) 유형이면, 결과는 첫 번째 값에서 두 번째 값을 뺀 것에 해당하는 단일 정수이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
클래스(Class) : divide (expression)
포함(Contains) : expression [2]
divide operator는 두 개의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 결과는 첫 번째 표현식을 두 번째 표현식으로 나눈 것에 해당하는 단일 플로트(float)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
문항 저작자는 두 번째 표현식 값이 절대로 0이 되니 않도록 모든 노력을 기울여야 하며, 만약 0이 나오거나 결과 값이 플로트(float)(양의 또는 음의 무한대를 포함하지 않는)가 지정한 값 세트를 벗어난다면, operator 결과는 NULL이다.
클래스(Class) : power (expression)
포함(Contains) : expression [2]
power operator는 두 개의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 숫자형 기본 유형(numerical base-type)을 갖는다. 결과는 두 번째 표현식의 파워까지 올라간 첫 번째 표현식에 해당하는 단일 플로트(float)이다. 두 표현식 중 하나가 NULL이면 operator 결과는 NULL이다.
만일 결과값이 플로트(float)(양과 음의 무한대를 포함하지 않는)가 지정한 값 세트 밖에 있다면, operator 결과는 NULL이다.
클래스(Class) : integerDivide (expression)
포함(Contains) : expression [2]
integer divide operator는 두 개의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 기본 유형(base-type) 정수(integer) 갖는다. 결과는 첫 번째 표현식(x)를 두 번째 표현식(y)로 나누고 최대정수(i)까지 반내림한 것에 해당하는 단일 정수이며, 그 식은 i<=(x/y)로 표현된다. 만약 y가 0이면, 또는 하위 표현식 중의 하나가 NULL이면 operator 결과는 NULL 이다.
클래스(Class) : integerModulus (expression)
포함(Contains) : expression [2]
integer modulus 오퍼레이트는 두 개의 하위 표현식을 취하며, 이들은 모두 단일 다중성(single cardinality)과 기본 유형(base-type) 정수(integer) 갖는다. 결과는 첫 번째 표현식(x)이 두 번째 표현식(y)으로 나뉘고 남은 나머지에 해당하는 단일 정수이다. 만약 z가 해당 integerDivide operator의 결과이면, 그 결과는 x-z*y 로 표현된다. 만약 y가 0이면, 또는 하위 표현식 중의 하나가 NULL이면 operator 결과는 NULL 이다.
클래스(Class) : truncate (expression)
포함(Contains) : expression [1]
truncate operator는 단일 하위 표현식을 취하며, 이는 반드시 단일 다중성(single cardinality)과 기본 유형(base-type) 플로트(float)를 갖는다. 결과는 0에 가까운 하위 표현식 값을 잘라냄으로 만들어진 기본 유형(base-type) 정수(integer) 값이다. 예를 들어, 값 6.8은 6이 되며, 값 -6.8은 -6이 되는 것이다. 하위 표현식이 NULL이면 operator 결과는 NULL 이다.
클래스(Class) : round (expression)
포함(Contains) : expression [1]
round operator는 단일 하위 표현식을 취하여 이는 반드시 단일 다중성(single cardinality)과 기본 유형(base-type) 플로트(float)를 갖는다. 결과는 0에 가까운 하위 표현식 값을 반올림해서 만들어진 기본 유형(base-type) 정수(integer) 값이다. 결과는 [n-0.5,n+0.5) 범위 에서 모든 인풋 값에 대한 정수 n인 것이다. 다른 말로, 6.8 과 6.5 은 둘 다 7로 반올림 되고, 6.49 는 6으로 반내림되며, -6.5는 -6 반올림 되는 것이다. 하위 표현식이 NULL이면 operator 결과는 NULL 이다.
클래스(Class) : integerToFloat (expression)
포함(Contains) : expression [1]
integerToFloat operator는 단일 하위 표현식을 취하며, 이는 반드시 단일 다중성(single cardinality)과 기본 유형(base-type) 정수(integer)를 갖는다. 결과는 동일한 숫자 값을 갖는 기본형 기본 유형 플로트(base-type float)이다. 하위 표현식이 NULL이면 operator 결과는 NULL 이다.
클래스(Class) : customOperator (expression)
Custom operator는 이 표준에서는 현재 지원되지 않는 오퍼레이션을 정의하기 위한 확장 매커니즘을 제공한다.
속성(Attribute) : class [0..1]: identifier
클래스 속성은 단순 하위 클래스에게 이름을 붙여준다. 하위 클래스의 정의는 tool specific이며 toolName과 toolVersion에서 추론될 수 있다.
속성(Attribute) : definition [0..1]: uri
전역 네임스페이스(global namespace)에서 custom operator의 정의를 식별하는 URI.
클래스(class) 및 정의(definition) 속성에 더하여, 하위 클래스들은 자체 속성의 어떤 수라도 첨가할 수 있다.
포함(Contains) : expression [*]
Custom operator는 파라미터로 취급될 어떠한 유형의 하위 표현식이 갖는 어떤 수라도 취할 수 있다.
customOperator가 이 표준이 정의한 처리 규칙을 웹서비스 기반 처리 엔진의 인스턴스로 링크시키는 데 사용될 수 있도록 제안되었다. 예를 들어, 자유 기술(free text) 응답의 자동 마킹을 제공했던 웹서비스가 그것이다. 이러한 접근법을 실험하는 실행자(Implementors)들은 그들의 솔루션 정보를 공유하여 이러한 유형의 처리를 달성하기 위한 가장 좋은 방법의 결정을 도울 수 있도록 권장된다.