Hi all,

I am new to Castor so please excuse me if some of the things I asked are
trivial.

I am starting on a new project which relies on a given specification
from IMS Global Learning Consortium (available from
http://www.imsglobal.org. I am using the 1.2 Question and Test
Interoperability DTD).

Since Castor Sourcegen works with w3c schema rather than dtd, I used Xml
Spy to convert the given 
dtd to a xsd file which I have included with this mail. Castor was then
able to generate the required java classes. 
I used the generated classes on some of the IMS example xml documents
and they were able to 
unmarshal an marshal them fine.

My next step is to store these xml documents in a database using JDO.
However, at this point I am completely stuck. Do I have to write a
mapping file to map my generated classes to SQL tables? So far no
examples are given as to how one goes from xsd -?java
class--->rdbms schema. Since the IMS dtd
is very complex (and I cannot change it if I want to be compliant with
the given standard), it would be 
very difficult and time consuming to write one. Is there an easier way
to go from xsd to rdbms schema?

One the other hand, since I do not need to query at all levels of 
the xml tree, can I stop at a particular level in the mapping file? In
other words, can I map a particular complex 
field and its subtree in the xml tree to a blob? This would help me a
great deal since I don稚 have to write a 
large mapping file which defines the mapping for every single node. From
what I gather, given an object which has many complex fields, I can call
marshal from any of those field and it will generate me an xml doc for
the 
given subtree. Can I then simply store this as text in the database
since I know I won稚 be performing any query 
on any of these fields and their respective subtrees?

I would appreciate any help on this,

Thanks
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.0.1 U (http://www.xmlspy.com) by chi (none) -->
<!--W3C Schema generated by XML Spy v4.0.1 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified"
xmlns:xml="http://www.w3.org/XML/1998/namespace";>

    <xs:complexType name="altmaterialType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element name="mattext" type="mattextType"/>
                <xs:element name="matemtext" type="matemtextType"/>
                <xs:element name="matimage" type="matimageType"/>
                <xs:element name="mataudio" type="mataudioType"/>
                <xs:element name="matvideo" type="matvideoType"/>
                <xs:element name="matapplet" type="matappletType"/>
                <xs:element name="matapplication" type="matapplicationType"/>
                <xs:element name="matref" type="matrefType"/>
                <xs:element name="matbreak" ref="matbreak"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="xml:lang" type="xs:string" default="en-US"/>
    </xs:complexType>
    <xs:complexType name="andType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="not" type="notType"/>
            <xs:element name="and" type="andType"/>
            <xs:element name="or" type="orType"/>
            <xs:element name="unanswered" type="unansweredType"/>
            <xs:element name="other" ref="other"/>
            <xs:element name="varequal" type="varequalType"/>
            <xs:element name="varlt" type="varltType"/>
            <xs:element name="varlte" type="varlteType"/>
            <xs:element name="vargt" type="vargtType"/>
            <xs:element name="vargte" type="vargteType"/>
            <xs:element name="varsubset" type="varsubsetType"/>
            <xs:element name="varinside" type="varinsideType"/>
            <xs:element name="durequal" ref="durequal"/>
            <xs:element name="durlt" ref="durlt"/>
            <xs:element name="durlte" ref="durlte"/>
            <xs:element name="durgt" ref="durgt"/>
            <xs:element name="durgte" ref="durgte"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="and_objectsType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
            <xs:element name="and_objects" type="and_objectsType"/>
            <xs:element name="or_objects" type="or_objectsType"/>
            <xs:element name="not_objects" type="not_objectsType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="and_selectionType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="selection_metadata" type="selection_metadataType"/>
            <xs:element name="selection_param" type="selection_paramType"/>
            <xs:element name="and_selection" type="and_selectionType"/>
            <xs:element name="or_selection" type="or_selectionType"/>
            <xs:element name="not_selection" type="not_selectionType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="and_testType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="variable_test" type="variable_testType"/>
            <xs:element name="and_test" type="and_testType"/>
            <xs:element name="or_test" type="or_testType"/>
            <xs:element name="not_test" type="not_testType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="assessfeedbackType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="assessmentType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="duration" ref="duration" minOccurs="0" maxOccurs="1"/>
            <xs:element name="assessmentmetadata" type="assessmentmetadataType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="assessmentcontrol" type="assessmentcontrolType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="presentation_material" type="presentation_materialType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="assessfeedback" type="assessfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="reference" type="referenceType" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element name="sectionref" type="sectionrefType"/>
                <xs:element name="section" type="sectionType"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="assessmentcontrolType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="hintswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="solutionswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="feedbackswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="assessmentmetadataType">
        <xs:sequence>
            <xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_absolutescore" ref="qmd_absolutescore" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_assessmenttype" ref="qmd_assessmenttype" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_feedbackpermitted" ref="qmd_feedbackpermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_hintspermitted" ref="qmd_hintspermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_scoretype" ref="qmd_scoretype" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_solutionspermitted" ref="qmd_solutionspermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_sectionselection" ref="qmd_sectionselection" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_sectionsequence" ref="qmd_sectionsequence" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_itemselection" ref="qmd_itemselection" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_itemsequence" ref="qmd_itemsequence" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_timelimit" ref="qmd_timelimit" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_toolvendor" ref="qmd_toolvendor" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_material" ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="conditionvarType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="not" type="notType"/>
            <xs:element name="and" type="andType"/>
            <xs:element name="or" type="orType"/>
            <xs:element name="unanswered" type="unansweredType"/>
            <xs:element name="other" ref="other"/>
            <xs:element name="varequal" type="varequalType"/>
            <xs:element name="varlt" type="varltType"/>
            <xs:element name="varlte" type="varlteType"/>
            <xs:element name="vargt" type="vargtType"/>
            <xs:element name="vargte" type="vargteType"/>
            <xs:element name="varsubset" type="varsubsetType"/>
            <xs:element name="varinside" type="varinsideType"/>
            <xs:element name="durequal" ref="durequal"/>
            <xs:element name="durlt" ref="durlt"/>
            <xs:element name="durlte" ref="durlte"/>
            <xs:element name="durgt" ref="durgt"/>
            <xs:element name="durgte" ref="durgte"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="decvarType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="varname" type="xs:string" default="SCORE"/>
                <xs:attribute name="vartype" default="Integer">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Integer"/>
                            <xs:enumeration value="String"/>
                            <xs:enumeration value="Decimal"/>
                            <xs:enumeration value="Scientific"/>
                            <xs:enumeration value="Boolean"/>
                            <xs:enumeration value="Enumerated"/>
                            <xs:enumeration value="Set"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="defaultval" type="xs:string"/>
                <xs:attribute name="minvalue" type="xs:string"/>
                <xs:attribute name="maxvalue" type="xs:string"/>
                <xs:attribute name="members" type="xs:string"/>
                <xs:attribute name="cutvalue" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="displayfeedbackType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="feedbacktype" default="Response">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Response"/>
                            <xs:enumeration value="Solution"/>
                            <xs:enumeration value="Hint"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="linkrefid" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="duration" type="xs:string"/>
    <xs:element name="durequal" type="xs:string"/>
    <xs:element name="durgt" type="xs:string"/>
    <xs:element name="durgte" type="xs:string"/>
    <xs:element name="durlt" type="xs:string"/>
    <xs:element name="durlte" type="xs:string"/>
    <xs:element name="fieldentry" type="xs:string"/>
    <xs:element name="fieldlabel" type="xs:string"/>
    <xs:complexType name="flowType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="flow" type="flowType"/>
            <xs:element name="material" type="materialType"/>
            <xs:element name="response_lid" type="response_lidType"/>
            <xs:element name="response_xy" type="response_xyType"/>
            <xs:element name="response_str" type="response_strType"/>
            <xs:element name="response_num" type="response_numType"/>
            <xs:element name="response_grp" type="response_grpType"/>
        </xs:choice>
        <xs:attribute name="class" type="xs:string" default="Block"/>
    </xs:complexType>
    <xs:complexType name="flow_labelType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="flow_label" type="flow_labelType"/>
            <xs:element name="response_label" type="response_labelType"/>
        </xs:choice>
        <xs:attribute name="class" type="xs:string" default="Block"/>
    </xs:complexType>
    <xs:complexType name="flow_matType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="flow_mat" type="flow_matType"/>
            <xs:element name="material" type="materialType"/>
        </xs:choice>
        <xs:attribute name="class" type="xs:string" default="Block"/>
    </xs:complexType>
    <xs:complexType name="hintType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="hintmaterial" type="hintmaterialType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="feedbackstyle" default="Complete">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Complete"/>
                    <xs:enumeration value="Incremental"/>
                    <xs:enumeration value="Multilevel"/>
                    <xs:enumeration value="Proprietary"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="hintmaterialType">
        <xs:choice>
            <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="interpretvarType">
        <xs:sequence>
            <xs:element name="material" type="materialType"/>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="varname" type="xs:string" default="SCORE"/>
    </xs:complexType>
    <xs:complexType name="itemType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="duration" ref="duration" minOccurs="0" maxOccurs="1"/>
            <xs:element name="itemmetadata" type="itemmetadataType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="itemcontrol" type="itemcontrolType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="itemprecondition" ref="itemprecondition" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="itempostcondition" ref="itempostcondition" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="itemrubric" type="itemrubricType"/>
                <xs:element name="rubric" type="rubricType"/>
            </xs:choice>
            <xs:element name="presentation" type="presentationType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="resprocessing" type="resprocessingType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="itemfeedback" type="itemfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="maxattempts" type="xs:string"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="itemcontrolType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="feedbackswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="hintswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="solutionswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="itemfeedbackType">
        <xs:choice>
            <xs:choice>
                <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:element name="solution" type="solutionType" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="hint" type="hintType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:choice>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="itemmetadataType">
        <xs:sequence>
            <xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_computerscored" ref="qmd_computerscored" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_feedbackpermitted" ref="qmd_feedbackpermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_hintspermitted" ref="qmd_hintspermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_itemtype" ref="qmd_itemtype" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_levelofdifficulty" ref="qmd_levelofdifficulty" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_maximumscore" ref="qmd_maximumscore" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_renderingtype" ref="qmd_renderingtype" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_responsetype" ref="qmd_responsetype" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_scoringpermitted" ref="qmd_scoringpermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_solutionspermitted" ref="qmd_solutionspermitted" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_status" ref="qmd_status" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_timedependence" ref="qmd_timedependence" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_timelimit" ref="qmd_timelimit" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_toolvendor" ref="qmd_toolvendor" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_topic" ref="qmd_topic" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_weighting" ref="qmd_weighting" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_material" ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_typeofsolution" ref="qmd_typeofsolution" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="itempostcondition" type="xs:string"/>
    <xs:element name="itemprecondition" type="xs:string"/>
    <xs:complexType name="itemrefType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="linkrefid" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="itemrubricType">
        <xs:sequence>
            <xs:element name="material" type="materialType"/>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="map_inputType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="varname" type="xs:string" default="SCORE"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="map_outputType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="varname" type="xs:string" default="SCORE"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="matappletType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="y0" type="xs:string"/>
                <xs:attribute name="height" type="xs:string"/>
                <xs:attribute name="width" type="xs:string"/>
                <xs:attribute name="x0" type="xs:string"/>
                <xs:attribute name="embedded" type="xs:string" default="base64"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="matapplicationType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="apptype" type="xs:string"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="embedded" type="xs:string" default="base64"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="mataudioType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="audiotype" type="xs:string" default="audio/base"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="embedded" type="xs:string" default="base64"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="matbreak">
        <xs:complexType/>
    </xs:element>
    <xs:complexType name="matemtextType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="texttype" type="xs:string" default="text/plain"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="charset" type="xs:string" default="ascii-us"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="xml:space" default="default">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="preserve"/>
                            <xs:enumeration value="default"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="width" type="xs:string"/>
                <xs:attribute name="height" type="xs:string"/>
                <xs:attribute name="y0" type="xs:string"/>
                <xs:attribute name="x0" type="xs:string"/>
                <xs:attribute name="xml:lang" type="xs:string" default="en-US"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="materialType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element name="mattext" type="mattextType"/>
                <xs:element name="matemtext" type="matemtextType"/>
                <xs:element name="matimage" type="matimageType"/>
                <xs:element name="mataudio" type="mataudioType"/>
                <xs:element name="matvideo" type="matvideoType"/>
                <xs:element name="matapplet" type="matappletType"/>
                <xs:element name="matapplication" type="matapplicationType"/>
                <xs:element name="matref" type="matrefType"/>
                <xs:element name="matbreak" ref="matbreak"/>
            </xs:choice>
            <xs:element name="altmaterial" type="altmaterialType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="label" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="matimageType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="imagtype" type="xs:string" default="image/jpeg"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="height" type="xs:string"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="embedded" type="xs:string" default="base64"/>
                <xs:attribute name="width" type="xs:string"/>
                <xs:attribute name="y0" type="xs:string"/>
                <xs:attribute name="x0" type="xs:string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="matrefType">
        <xs:attribute name="linkrefid" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="mattextType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="texttype" type="xs:string" default="text/plain"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="charset" type="xs:string" default="ascii-us"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="xml:space" default="default">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="preserve"/>
                            <xs:enumeration value="default"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="width" type="xs:string"/>
                <xs:attribute name="height" type="xs:string"/>
                <xs:attribute name="y0" type="xs:string"/>
                <xs:attribute name="x0" type="xs:string"/>
                <xs:attribute name="xml:lang" type="xs:string" default="en-US"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="matvideoType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="videotype" type="xs:string" default="video/avi"/>
                <xs:attribute name="label" type="xs:string"/>
                <xs:attribute name="uri" type="xs:string"/>
                <xs:attribute name="width" type="xs:string"/>
                <xs:attribute name="height" type="xs:string"/>
                <xs:attribute name="y0" type="xs:string"/>
                <xs:attribute name="x0" type="xs:string"/>
                <xs:attribute name="embedded" type="xs:string" default="base64"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="notType">
        <xs:choice>
            <xs:element name="and" type="andType"/>
            <xs:element name="or" type="orType"/>
            <xs:element name="not" type="notType"/>
            <xs:element name="unanswered" type="unansweredType"/>
            <xs:element name="other" ref="other"/>
            <xs:element name="varequal" type="varequalType"/>
            <xs:element name="varlt" type="varltType"/>
            <xs:element name="varlte" type="varlteType"/>
            <xs:element name="vargt" type="vargtType"/>
            <xs:element name="vargte" type="vargteType"/>
            <xs:element name="varsubset" type="varsubsetType"/>
            <xs:element name="varinside" type="varinsideType"/>
            <xs:element name="durequal" ref="durequal"/>
            <xs:element name="durlt" ref="durlt"/>
            <xs:element name="durlte" ref="durlte"/>
            <xs:element name="durgt" ref="durgt"/>
            <xs:element name="durgte" ref="durgte"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="not_objectsType">
        <xs:choice>
            <xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
            <xs:element name="and_objects" type="and_objectsType"/>
            <xs:element name="or_objects" type="or_objectsType"/>
            <xs:element name="not_objects" type="not_objectsType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="not_selectionType">
        <xs:choice>
            <xs:element name="selection_metadata" type="selection_metadataType"/>
            <xs:element name="selection_param" type="selection_paramType"/>
            <xs:element name="and_selection" type="and_selectionType"/>
            <xs:element name="or_selection" type="or_selectionType"/>
            <xs:element name="not_selection" type="not_selectionType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="not_testType">
        <xs:choice>
            <xs:element name="variable_test" type="variable_testType"/>
            <xs:element name="and_test" type="and_testType"/>
            <xs:element name="or_test" type="or_testType"/>
            <xs:element name="not_test" type="not_testType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="objectbank_identifierType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="objectbank_type" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Assessment"/>
                            <xs:enumeration value="Section"/>
                            <xs:enumeration value="Item"/>
                            <xs:enumeration value="Mixed"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="objectbank_referenceType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="objectivesType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="objects_conditionType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="0" maxOccurs="1">
                <xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
                <xs:element name="and_objects" type="and_objectsType"/>
                <xs:element name="or_objects" type="or_objectsType"/>
                <xs:element name="not_objects" type="not_objectsType"/>
            </xs:choice>
            <xs:element name="objects_parameter" type="objects_parameterType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="map_input" type="map_inputType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="objectscond_extension" ref="objectscond_extension" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="objects_parameterType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="pname" type="xs:string" use="required"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="objectscond_extension" type="xs:string"/>
    <xs:complexType name="orType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="not" type="notType"/>
            <xs:element name="and" type="andType"/>
            <xs:element name="or" type="orType"/>
            <xs:element name="unanswered" type="unansweredType"/>
            <xs:element name="other" ref="other"/>
            <xs:element name="varequal" type="varequalType"/>
            <xs:element name="varlt" type="varltType"/>
            <xs:element name="varlte" type="varlteType"/>
            <xs:element name="vargt" type="vargtType"/>
            <xs:element name="vargte" type="vargteType"/>
            <xs:element name="varsubset" type="varsubsetType"/>
            <xs:element name="varinside" type="varinsideType"/>
            <xs:element name="durequal" ref="durequal"/>
            <xs:element name="durlt" ref="durlt"/>
            <xs:element name="durlte" ref="durlte"/>
            <xs:element name="durgt" ref="durgt"/>
            <xs:element name="durgte" ref="durgte"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="or_objectsType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="outcomes_metadata" type="outcomes_metadataType"/>
            <xs:element name="and_objects" type="and_objectsType"/>
            <xs:element name="or_objects" type="or_objectsType"/>
            <xs:element name="not_objects" type="not_objectsType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="or_selectionType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="selection_metadata" type="selection_metadataType"/>
            <xs:element name="selection_param" type="selection_paramType"/>
            <xs:element name="and_selection" type="and_selectionType"/>
            <xs:element name="or_selection" type="or_selectionType"/>
            <xs:element name="not_selection" type="not_selectionType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="or_testType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="variable_test" type="variable_testType"/>
            <xs:element name="and_test" type="and_testType"/>
            <xs:element name="or_test" type="or_testType"/>
            <xs:element name="not_test" type="not_testType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="orderType">
        <xs:attribute name="ordtype" default="Sequential">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Sequential"/>
                    <xs:enumeration value="Random"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="other" type="xs:string"/>
    <xs:complexType name="outcomesType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element name="decvar" type="decvarType"/>
                <xs:element name="interpretvar" type="interpretvarType"/>
            </xs:choice>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="outcomes_feedback_testType">
        <xs:sequence>
            <xs:element name="test_variable" type="test_variableType"/>
            <xs:element name="displayfeedback" type="displayfeedbackType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="outcomes_metadataType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="mdname" type="xs:string" use="required"/>
                <xs:attribute name="mdoperator" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="EQ"/>
                            <xs:enumeration value="NEQ"/>
                            <xs:enumeration value="LT"/>
                            <xs:enumeration value="LTE"/>
                            <xs:enumeration value="GT"/>
                            <xs:enumeration value="GTE"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="outcomes_processingType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="outcomes" type="outcomesType"/>
            <xs:element name="objects_condition" type="objects_conditionType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="processing_parameter" type="processing_parameterType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="map_output" type="map_outputType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="outcomes_feedback_test" type="outcomes_feedback_testType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="scoremodel" type="xs:string" default="SumofScores"/>
    </xs:complexType>
    <xs:complexType name="presentationType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="flow" type="flowType"/>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                    <xs:element name="material" type="materialType"/>
                    <xs:element name="response_lid" type="response_lidType"/>
                    <xs:element name="response_xy" type="response_xyType"/>
                    <xs:element name="response_str" type="response_strType"/>
                    <xs:element name="response_num" type="response_numType"/>
                    <xs:element name="response_grp" type="response_grpType"/>
                </xs:choice>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="label" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="presentation_materialType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="processing_parameterType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="pname" type="xs:string" use="required"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="qmd_absolutescore" type="xs:string"/>
    <xs:element name="qmd_assessmenttype" type="xs:string"/>
    <xs:element name="qmd_computerscored" type="xs:string"/>
    <xs:element name="qmd_feedbackpermitted" type="xs:string"/>
    <xs:element name="qmd_hintspermitted" type="xs:string"/>
    <xs:element name="qmd_itemselection" type="xs:string"/>
    <xs:element name="qmd_itemsequence" type="xs:string"/>
    <xs:element name="qmd_itemtype" type="xs:string"/>
    <xs:element name="qmd_levelofdifficulty" type="xs:string"/>
    <xs:element name="qmd_material" type="xs:string"/>
    <xs:element name="qmd_maximumscore" type="xs:string"/>
    <xs:element name="qmd_numberofitems" type="xs:string"/>
    <xs:element name="qmd_renderingtype" type="xs:string"/>
    <xs:element name="qmd_responsetype" type="xs:string"/>
    <xs:element name="qmd_scoretype" type="xs:string"/>
    <xs:element name="qmd_scoringpermitted" type="xs:string"/>
    <xs:element name="qmd_sectionselection" type="xs:string"/>
    <xs:element name="qmd_sectionsequence" type="xs:string"/>
    <xs:element name="qmd_sectionsincluded" type="xs:string"/>
    <xs:element name="qmd_solutionspermitted" type="xs:string"/>
    <xs:element name="qmd_status" type="xs:string"/>
    <xs:element name="qmd_timedependence" type="xs:string"/>
    <xs:element name="qmd_timelimit" type="xs:string"/>
    <xs:element name="qmd_toolvendor" type="xs:string"/>
    <xs:element name="qmd_topic" type="xs:string"/>
    <xs:element name="qmd_typeofsolution" type="xs:string"/>
    <xs:element name="qmd_weighting" type="xs:string"/>
    <xs:complexType name="qticommentType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="xml:lang" type="xs:string" default="en-US"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="qtimetadataType">
        <xs:sequence>
            <xs:element name="vocabulary" type="vocabularyType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qtimetadatafield" type="qtimetadatafieldType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="qtimetadatafieldType">
        <xs:sequence>
            <xs:element name="fieldlabel" ref="fieldlabel"/>
            <xs:element name="fieldentry" ref="fieldentry"/>
        </xs:sequence>
        <xs:attribute name="xml:lang" type="xs:string" default="en-US"/>
    </xs:complexType>
    <xs:element name="questestinterop">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
                <xs:element name="objectbank_identifier" type="objectbank_identifierType" minOccurs="0" maxOccurs="1"/>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                    <xs:element name="assessment" type="assessmentType"/>
                    <xs:element name="section" type="sectionType"/>
                    <xs:element name="item" type="itemType"/>
                </xs:choice>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="referenceType">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="qticomment" type="qticommentType"/>
            <xs:element name="mattext" type="mattextType"/>
            <xs:element name="matemtext" type="matemtextType"/>
            <xs:element name="matimage" type="matimageType"/>
            <xs:element name="mataudio" type="mataudioType"/>
            <xs:element name="matvideo" type="matvideoType"/>
            <xs:element name="matapplet" type="matappletType"/>
            <xs:element name="matapplication" type="matapplicationType"/>
            <xs:element name="matbreak" ref="matbreak"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="render_choiceType">
        <xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="material" type="materialType"/>
                <xs:element name="response_label" type="response_labelType"/>
            </xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="response_label" type="response_labelType"/>
                <xs:element name="flow_label" type="flow_labelType"/>
            </xs:choice>
        </xs:choice>
        <xs:attribute name="shuffle" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="minnumber" type="xs:string" default="1"/>
        <xs:attribute name="maxnumber" type="xs:string" default="1"/>
    </xs:complexType>
    <xs:complexType name="render_fibType">
        <xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="material" type="materialType"/>
                <xs:element name="response_label" type="response_labelType"/>
            </xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="response_label" type="response_labelType"/>
                <xs:element name="flow_label" type="flow_labelType"/>
            </xs:choice>
        </xs:choice>
        <xs:attribute name="encoding" type="xs:string" default="UTF_8"/>
        <xs:attribute name="fibtype" default="String">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="String"/>
                    <xs:enumeration value="Integer"/>
                    <xs:enumeration value="Decimal"/>
                    <xs:enumeration value="Scientific"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rows" type="xs:string"/>
        <xs:attribute name="maxchars" type="xs:string"/>
        <xs:attribute name="prompt">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Box"/>
                    <xs:enumeration value="Dashline"/>
                    <xs:enumeration value="Asterisk"/>
                    <xs:enumeration value="Underline"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="columns" type="xs:string"/>
        <xs:attribute name="charset" type="xs:string" default="ascii-us"/>
        <xs:attribute name="maxnumber" type="xs:string" default="1"/>
        <xs:attribute name="minnumber" type="xs:string" default="1"/>
    </xs:complexType>
    <xs:complexType name="render_hotspotType">
        <xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="material" type="materialType"/>
                <xs:element name="response_label" type="response_labelType"/>
            </xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="response_label" type="response_labelType"/>
                <xs:element name="flow_label" type="flow_labelType"/>
            </xs:choice>
        </xs:choice>
        <xs:attribute name="maxnumber" type="xs:string" default="1"/>
        <xs:attribute name="minnumber" type="xs:string" default="1"/>
        <xs:attribute name="showdraw" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="render_sliderType">
        <xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="material" type="materialType"/>
                <xs:element name="response_label" type="response_labelType"/>
            </xs:choice>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="response_label" type="response_labelType"/>
                <xs:element name="flow_label" type="flow_labelType"/>
            </xs:choice>
        </xs:choice>
        <xs:attribute name="orientation" default="Horizontal">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Horizontal"/>
                    <xs:enumeration value="Vertical"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="lowerbound" type="xs:string" use="required"/>
        <xs:attribute name="upperbound" type="xs:string" use="required"/>
        <xs:attribute name="step" type="xs:string"/>
        <xs:attribute name="startval" type="xs:string"/>
        <xs:attribute name="steplabel" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="maxnumber" type="xs:string" default="1"/>
        <xs:attribute name="minnumber" type="xs:string" default="1"/>
    </xs:complexType>
    <xs:complexType name="respconditionType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="conditionvar" type="conditionvarType"/>
            <xs:element name="setvar" type="setvarType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="displayfeedback" type="displayfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="continue" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="response_grpType">
        <xs:sequence>
            <xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="render_choice" type="render_choiceType"/>
                <xs:element name="render_hotspot" type="render_hotspotType"/>
                <xs:element name="render_slider" type="render_sliderType"/>
                <xs:element name="render_fib" type="render_fibType"/>
            </xs:choice>
            <xs:element name="more_material" type="materialType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="rcardinality" default="Single">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Single"/>
                    <xs:enumeration value="Multiple"/>
                    <xs:enumeration value="Ordered"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="rtiming" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="response_labelType" mixed="true">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="qticomment" type="qticommentType"/>
            <xs:element name="material" type="materialType"/>
            <xs:element name="flow_mat" type="flow_matType"/>
        </xs:choice>
        <xs:attribute name="rshuffle" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rarea" default="Ellipse">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Ellipse"/>
                    <xs:enumeration value="Rectangle"/>
                    <xs:enumeration value="Bounded"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rrange" default="Exact">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Exact"/>
                    <xs:enumeration value="Range"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="labelrefid" type="xs:string"/>
        <xs:attribute name="ident" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="response_lidType">
        <xs:sequence>
            <xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="render_choice" type="render_choiceType"/>
                <xs:element name="render_hotspot" type="render_hotspotType"/>
                <xs:element name="render_slider" type="render_sliderType"/>
                <xs:element name="render_fib" type="render_fibType"/>
            </xs:choice>
            <xs:element name="more_material" type="materialType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="rcardinality" default="Single">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Single"/>
                    <xs:enumeration value="Multiple"/>
                    <xs:enumeration value="Ordered"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rtiming" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="response_numType">
        <xs:sequence>
            <xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="render_choice" type="render_choiceType"/>
                <xs:element name="render_hotspot" type="render_hotspotType"/>
                <xs:element name="render_slider" type="render_sliderType"/>
                <xs:element name="render_fib" type="render_fibType"/>
            </xs:choice>
            <xs:element name="more_material" type="materialType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="numtype" default="Integer">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Integer"/>
                    <xs:enumeration value="Decimal"/>
                    <xs:enumeration value="Scientific"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rcardinality" default="Single">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Single"/>
                    <xs:enumeration value="Multiple"/>
                    <xs:enumeration value="Ordered"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="rtiming" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="response_strType">
        <xs:sequence>
            <xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="render_choice" type="render_choiceType"/>
                <xs:element name="render_hotspot" type="render_hotspotType"/>
                <xs:element name="render_slider" type="render_sliderType"/>
                <xs:element name="render_fib" type="render_fibType"/>
            </xs:choice>
            <!-- xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/ -->
        </xs:sequence>
        <xs:attribute name="rcardinality" default="Single">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Single"/>
                    <xs:enumeration value="Multiple"/>
                    <xs:enumeration value="Ordered"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="rtiming" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="response_xyType">
        <xs:sequence>
            <xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="render_choice" type="render_choiceType"/>
                <xs:element name="render_hotspot" type="render_hotspotType"/>
                <xs:element name="render_slider" type="render_sliderType"/>
                <xs:element name="render_fib" type="render_fibType"/>
            </xs:choice>
            <!-- xs:element name="material" type="materialType" minOccurs="0" maxOccurs="1"/ -->
        </xs:sequence>
        <xs:attribute name="rcardinality" default="Single">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Single"/>
                    <xs:enumeration value="Multiple"/>
                    <xs:enumeration value="Ordered"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="rtiming" default="No">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="resprocessingType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="outcomes" type="outcomesType"/>
            <xs:choice minOccurs="1" maxOccurs="unbounded">
                <xs:element name="respcondition" type="respconditionType"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="scoremodel" type="xs:string" default="SumofScores"/>
    </xs:complexType>
    <xs:complexType name="rubricType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="sectionType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="duration" ref="duration" minOccurs="0" maxOccurs="1"/>
            <xs:element name="sectionmetadata" type="sectionmetadataType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="objectives" type="objectivesType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="sectioncontrol" type="sectioncontrolType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="sectionprecondition" ref="sectionprecondition" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="sectionpostcondition" ref="sectionpostcondition" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="rubric" type="rubricType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="presentation_material" type="presentation_materialType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="outcomes_processing" type="outcomes_processingType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="sectionfeedback" type="sectionfeedbackType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="selection_ordering" type="selection_orderingType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="reference" type="referenceType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="itemref" type="itemrefType"/>
                    <xs:element name="item" type="itemType"/>
                    <xs:element name="sectionref" type="sectionrefType"/>
                    <xs:element name="section" type="sectionType"/>
                </xs:choice>
                <xs:element name="objectbank_reference" type="objectbank_referenceType"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="sectioncontrolType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="feedbackswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="hintswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="solutionswitch" default="Yes">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Yes"/>
                    <xs:enumeration value="No"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="sectionfeedbackType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:choice>
                <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:sequence>
        <xs:attribute name="view" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Administrator"/>
                    <xs:enumeration value="AdminAuthority"/>
                    <xs:enumeration value="Assessor"/>
                    <xs:enumeration value="Author"/>
                    <xs:enumeration value="Candidate"/>
                    <xs:enumeration value="InvigilatorProctor"/>
                    <xs:enumeration value="Psychometrician"/>
                    <xs:enumeration value="Scorer"/>
                    <xs:enumeration value="Tutor"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="required"/>
        <xs:attribute name="title" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="sectionmetadataType">
        <xs:sequence>
            <xs:element name="qtimetadata" type="qtimetadataType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="qmd_numberofitems" ref="qmd_numberofitems" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_sectionsincluded" ref="qmd_sectionsincluded" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_sectionselection" ref="qmd_sectionselection" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_sectionsequence" ref="qmd_sectionsequence" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_itemselection" ref="qmd_itemselection" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_itemsequence" ref="qmd_itemsequence" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_timelimit" ref="qmd_timelimit" minOccurs="0" maxOccurs="1"/>
            <xs:element name="qmd_material" ref="qmd_material" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="sectionpostcondition" type="xs:string"/>
    <xs:element name="sectionprecondition" type="xs:string"/>
    <xs:complexType name="sectionrefType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="linkrefid" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="selectionType">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="selection_number" type="selection_numberType"/>
            <xs:element name="selection_metadata" type="selection_metadataType"/>
            <xs:element name="selection_param" type="selection_paramType"/>
            <xs:element name="and_selection" type="and_selectionType"/>
            <xs:element name="or_selection" type="or_selectionType"/>
            <xs:element name="not_selection" type="not_selectionType"/>
        </xs:choice>
        <xs:attribute name="seltype" default="All">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="All"/>
                    <xs:enumeration value="Explicit"/>
                    <xs:enumeration value="ParamAll"/>
                    <xs:enumeration value="ParamPartial"/>
                    <xs:enumeration value="Partial"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="selection_metadataType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="mdname" type="xs:string" use="required"/>
                <xs:attribute name="mdoperator" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="EQ"/>
                            <xs:enumeration value="NEQ"/>
                            <xs:enumeration value="LT"/>
                            <xs:enumeration value="LTE"/>
                            <xs:enumeration value="GT"/>
                            <xs:enumeration value="GTE"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="selection_numberType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="int"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="selection_orderingType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="selection" type="selectionType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="order" type="orderType" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="selection_paramType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="pname" type="xs:string" use="required"/>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="setvarType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="varname" type="xs:string" default="SCORE"/>
                <xs:attribute name="action" default="Set">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Set"/>
                            <xs:enumeration value="Add"/>
                            <xs:enumeration value="Subtract"/>
                            <xs:enumeration value="Multiply"/>
                            <xs:enumeration value="Divide"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="solutionType">
        <xs:sequence>
            <xs:element name="qticomment" type="qticommentType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="solutionmaterial" type="solutionmaterialType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="feedbackstyle" default="Complete">
            <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                    <xs:enumeration value="Complete"/>
                    <xs:enumeration value="Incremental"/>
                    <xs:enumeration value="Multilevel"/>
                    <xs:enumeration value="Proprietary"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="solutionmaterialType">
        <xs:choice>
            <xs:element name="material" type="materialType" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="flow_mat" type="flow_matType" minOccurs="1" maxOccurs="unbounded"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="test_variableType">
        <xs:choice>
            <xs:element name="variable_test" type="variable_testType"/>
            <xs:element name="and_test" type="and_testType"/>
            <xs:element name="or_test" type="or_testType"/>
            <xs:element name="not_test" type="not_testType"/>
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="unansweredType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="varequalType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="case" default="No">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Yes"/>
                            <xs:enumeration value="No"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="vargtType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="vargteType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="variable_testType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="varname" type="xs:string" default="SCORE"/>
                <xs:attribute name="testoperator" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="EQ"/>
                            <xs:enumeration value="NEQ"/>
                            <xs:enumeration value="LT"/>
                            <xs:enumeration value="LTE"/>
                            <xs:enumeration value="GT"/>
                            <xs:enumeration value="GTE"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="string"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="varinsideType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="areatype" use="required">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Ellipse"/>
                            <xs:enumeration value="Rectangle"/>
                            <xs:enumeration value="Bounded"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="varltType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="varlteType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="respident" type="xs:string" use="required"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="varsubsetType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="case" default="No">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Yes"/>
                            <xs:enumeration value="No"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="respident" type="xs:string" use="required"/>
                <xs:attribute name="setmatch" default="Exact">
                    <xs:simpleType>
                        <xs:restriction base="xs:NMTOKEN">
                            <xs:enumeration value="Exact"/>
                            <xs:enumeration value="Partial"/>
                        </xs:restriction>
                    </xs:simpleType>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="vocabularyType">
        <xs:attribute name="uri" type="xs:string"/>
    </xs:complexType>
</xs:schema>

Reply via email to