<!-- 
    
    DECOR schema
    Copyright (C) 2009-present Dr. Kai U. Heitmann and the ART-DECOR Expert Group
    
    ART-DECOR® STANDARD COPYRIGHT AND LICENSE NOTE
    Copyright © ART-DECOR Expert Group and ART-DECOR Open Tools GmbH
    see https://docs.art-decor.org/copyright and https://docs.art-decor.org/licenses

    This file is part of the ART-DECOR® tools suite.
    
-->
<xs:schema xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns:fhir="http://hl7.org/fhir" xmlns:sqf="http://www.schematron-quickfix.com/validator/process" elementFormDefault="qualified">

    <!-- include DECOR datatype defintions -->
    <xs:include schemaLocation="DECOR-datatypes.xsd"/>

    <!-- this is the root element of any decor main file -->
    <xs:element name="decor">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="1" maxOccurs="1" ref="project">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Projectinformatie</xforms:label>
                            <xforms:label xml:lang="en-US">Project Information</xforms:label>
                            <xforms:label xml:lang="de-DE">Informationen zum Projekt</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Projectinformatie</xs:documentation>
                        <xs:documentation xml:lang="en-US">Project Information</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Informationen zum Projekt</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element minOccurs="1" maxOccurs="1" ref="datasets">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Datasetdefinitie</xforms:label>
                            <xforms:label xml:lang="en-US">Dataset Definition</xforms:label>
                            <xforms:label xml:lang="de-DE">Datensatz-Definition</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Datasetdefinitie</xs:documentation>
                        <xs:documentation xml:lang="en-US">Dataset Definition</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Datensatz-Definition</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element minOccurs="1" maxOccurs="1" ref="scenarios">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Scenariodefinitie</xforms:label>
                            <xforms:label xml:lang="en-US">Scenario Definition</xforms:label>
                            <xforms:label xml:lang="de-DE">Szenario Definition</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Scenariodefinitie, inclusief actoren, transacties, modellen, cardinaliteiten en conformancestatements</xs:documentation>
                        <xs:documentation xml:lang="en-US">Scenario Definition, with actors, transactions, models, cardinalities, conformance statements</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Szenario Definition, mit Aktoren, Transaktionen, Modellem, Kardinalitäten, Konformitätsangaben</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- identifiers -->
                <xs:element minOccurs="1" maxOccurs="1" ref="ids">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Gebruikte identificaties</xforms:label>
                            <xforms:label xml:lang="en-US">Identifiers used</xforms:label>
                            <xforms:label xml:lang="de-DE">Benutzte Identifikatoren</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Gebruikte identificaties, bedoeld voor weergavedoeleinden</xs:documentation>
                        <xs:documentation xml:lang="en-US">Identifiers used, rendering only</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Benutzte Identifikatoren, nur zur Anzeige</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- terminology, e.g. value sets -->
                <xs:element minOccurs="1" maxOccurs="1" ref="terminology">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Terminologiedefinities</xforms:label>
                            <xforms:label xml:lang="en-US">Terminology definitions</xforms:label>
                            <xforms:label xml:lang="de-DE">Terminologische Definitionen</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Terminologiedefinities</xs:documentation>
                        <xs:documentation xml:lang="en-US">Terminology definitions</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Terminologische Definitionen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- rules -->
                <xs:element minOccurs="1" maxOccurs="1" ref="rules">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Regeldefinities</xforms:label>
                            <xforms:label xml:lang="en-US">Rules definitions</xforms:label>
                            <xforms:label xml:lang="de-DE">Regeldefinitionen</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Regeldefinities</xs:documentation>
                        <xs:documentation xml:lang="en-US">Rules definitions</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Regeldefinitionen</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- issues -->
                <xs:element minOccurs="1" maxOccurs="1" ref="issues">
                    <xs:annotation>
                        <xs:appinfo>
                            <xforms:label xml:lang="nl-NL">Issuelijst</xforms:label>
                            <xforms:label xml:lang="en-US">Issue list</xforms:label>
                            <xforms:label xml:lang="de-DE">Problemliste</xforms:label>
                        </xs:appinfo>
                        <xs:documentation xml:lang="nl-NL">Issuelijst</xs:documentation>
                        <xs:documentation xml:lang="en-US">Issue list</xs:documentation>
                        <xs:documentation xml:lang="de-DE">Problemliste</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="repository" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">DECOR-project is een (building block) repository (BBR)</xforms:label>
                        <xforms:label xml:lang="en-US">DECOR project is a (building block) repository (BBR)</xforms:label>
                        <xforms:label xml:lang="de-DE">DECOR-Projekt ist ein (Building Block) Repository (BBR)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Indication whether this DECOR project is a (building block) repository (BBR)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="private" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">DECOR-project is privé</xforms:label>
                        <xforms:label xml:lang="en-US">DECOR project is private</xforms:label>
                        <xforms:label xml:lang="de-DE">DECOR-Projekt ist privat</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Indication whether this DECOR project is private, i.e. should NOT be included in searches from external.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="release" type="SmallNonNegativeInteger" fixed="1000" use="optional">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">DECOR-project release nummer</xforms:label>
                        <xforms:label xml:lang="en-US">DECOR project release number</xforms:label>
                        <xforms:label xml:lang="de-DE">DECOR-Projekt Release Nummer</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Release number (dddd) of the DECOR project file, for conversion detection beteeen releases later</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="DecorCompilationAttributes"/>

            <xs:anyAttribute namespace="##other" processContents="skip">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Contains dummy attributes that force xmlns declarations for templates</xs:documentation>
                </xs:annotation>
            </xs:anyAttribute>
        </xs:complexType>
    </xs:element>

    <!-- 
    
        project
        
    -->
    <xs:element name="project">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="copyright" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element ref="license" minOccurs="0" maxOccurs="1"/>
                <xs:element name="author" type="ProjectAuthorType" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="reference" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="restURI" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="defaultElementNamespace" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="contact" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="buildingBlockRepository" minOccurs="0" maxOccurs="unbounded"/>
                <!-- new 2021-05-21 -->
                <!--xs:element name="propertyset" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Set of property types you may use on a DECOR object as indicated by the list of scopes. In the absence of defined scopes, the propertyset is assumed to apply anywhere</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="property">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                                        <xs:element name="enumValue" minOccurs="0" maxOccurs="unbounded">
                                            <xs:annotation>
                                                <xs:documentation xml:lang="en-US">If the property type is code (and potentially ordinal) then one or more enumValue elements list the options</xs:documentation>
                                            </xs:annotation>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute name="datatype" type="DataSetValueType" use="required"/>
                                    <xs:attribute name="name" type="NonEmptyString" use="required"/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="href" type="xs:anyURI" use="optional">
                            <xs:annotation>
                                <xs:documentation xml:lang="en-US">Reference to a property file. This may be a relative or absolute URL</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="scope" use="optional">
                            <xs:simpleType>
                                <xs:list itemType="DecorAndOtherObjectTypes"/>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element-->
                <xs:choice maxOccurs="unbounded">
                    <xs:element name="version" type="ProjectHistory" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="release" type="ProjectRelease" minOccurs="0" maxOccurs="unbounded"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="required"/>
            <xs:attribute name="prefix" type="ShortDescriptiveName" use="required"/>
            <xs:attribute name="defaultLanguage" type="LanguageCode" use="required"/>
            <xs:attribute ref="experimental" use="optional" default="false"/>
        </xs:complexType>
        <xs:unique name="project-name-unique">
            <xs:selector xpath="name"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="project-desc-unique">
            <xs:selector xpath="desc"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="project-author-unique">
            <xs:selector xpath="author"/>
            <xs:field xpath="@id"/>
        </xs:unique>
        <xs:unique name="project-buildingBlockRepository-unique">
            <xs:selector xpath="buildingBlockRepository"/>
            <xs:field xpath="@url"/>
            <xs:field xpath="@ident"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="AuthorType" mixed="true">
        <xs:attribute name="id" type="xs:positiveInteger" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">author's id, shall be a shorthand id per project, e.g. "1"</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="username" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">username, must be the same as the corresponding Exist-DB login name</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="email" type="EmailType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">User's email address</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="notifier" type="NotifierOnOff" use="optional" default="on">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Specifies whether the automatic notifier system (if activated) should notify this author about changes of any project issue. Default is "on"</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="effectiveDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Date the author became effective. On a project author this the date he became a project author. On an issue event it is the date he became author of this event.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ProjectAuthorType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Adds expiration/inactive data to author.</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="true">
            <xs:extension base="AuthorType">
                <xs:attribute name="active" type="xs:boolean" use="optional" default="true">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">If false, the author is no longer considered active. Default is true. Note: for performance reasons you MUST set active to false explicitly when applicable, even though property active may be inferred from the expirationDate.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="expirationDate" type="TimeStampNoTimezone" use="optional">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Date the author is no longer considered active.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="copyright">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="addrLine" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="years" type="YearRanges" use="required"/>
            <xs:attribute name="by" type="ShortDescriptiveName"/>
            <xs:attribute name="logo" type="Uri"/>
            <xs:attribute name="type" type="CopyrightType" default="author" use="optional"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="license">
        <xs:complexType>
            <xs:attribute name="code" type="LicenseTypes" use="required"/>
            <xs:attribute ref="displayName" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="CopyrightType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Structured Copyright type. Determines the way that the copyright holder contributed to the project/building block repository contents</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="author">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Auteur</xforms:label>
                        <xforms:label xml:lang="en-US">Author</xforms:label>
                        <xforms:label xml:lang="de-DE">Autor</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="contributor">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Contributor</xforms:label>
                        <xforms:label xml:lang="en-US">Contributor</xforms:label>
                        <xforms:label xml:lang="de-DE">Mitwirkender</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="reviewer">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Reviewer</xforms:label>
                        <xforms:label xml:lang="en-US">Reviewer</xforms:label>
                        <xforms:label xml:lang="de-DE">Rezensent</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="addrLine">
        <xs:complexType mixed="true">
            <xs:sequence/>
            <xs:attribute name="type" type="AddressLineType" use="optional"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="reference">
        <xs:complexType>
            <xs:attribute name="url" type="Uri"/>
            <xs:attribute name="logo" type="Uri"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="restURI">
        <xs:annotation>
            <xs:appinfo>
                <xforms:label xml:lang="nl-NL">RESTful service</xforms:label>
                <xforms:label xml:lang="en-US">RESTful Service</xforms:label>
                <xforms:label xml:lang="de-DE">RESTful Service</xforms:label>
            </xs:appinfo>
            <xs:documentation xml:lang="en-US">End Point for RESTful services. Examples are FHIR End Points, and DECOR services</xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:attribute name="for" type="DecorAndOtherObjectTypes" use="required"/>
            <xs:attribute name="format" type="DecorAndOtherObjectFormats" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="defaultElementNamespace">
        <xs:annotation>
            <xs:appinfo>
                <xforms:label xml:lang="nl-NL">Standaard template-element namespace</xforms:label>
                <xforms:label xml:lang="en-US">Default Template Element Namespace</xforms:label>
                <xforms:label xml:lang="de-DE">Default Template Element Namespace</xforms:label>
            </xs:appinfo>
            <xs:documentation xml:lang="en-US">The default namespace prefix for all template element name definitions</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence/>
            <xs:attribute name="ns" type="NamespacePrefix" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="buildingBlockRepository">
        <xs:annotation>
            <xs:appinfo>
                <xforms:label xml:lang="nl-NL">Repository referentie</xforms:label>
                <xforms:label xml:lang="en-US">Repository reference</xforms:label>
                <xforms:label xml:lang="de-DE">Repository Referenz</xforms:label>
            </xs:appinfo>
            <xs:documentation xml:lang="en-US">ART-DECOR repository reference</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence/>
            <xs:attribute name="url" type="Uri" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">ART-DECOR repository URI directly pointing to the services, e.g. "http://art-decor.org/decor/services/"; ends with "/"</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="ident" type="NonEmptyString" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">ART-DECOR repository identification string (prefix), e.g. "ad1bbr-"; ends with "-"</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="licenseKey" type="NonEmptyString" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">For future use</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="format" type="BuildingBlockRepositoryFormat" use="optional" default="decor">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Determines the format of building blocks on the end point</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="displayName" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A human-friendly name of the repository.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>

    <xs:simpleType name="BuildingBlockRepositoryFormat">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Decor Object Types. Note: should you ever change list, please also see schematron check with name="Validate Ids".</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="decor">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">DECOR</xforms:label>
                        <xforms:label xml:lang="en-US">DECOR</xforms:label>
                        <xforms:label xml:lang="de-DE">DECOR</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">DECOR building blocks</xs:documentation>
                    <xs:documentation xml:lang="en-US">DECOR building blocks</xs:documentation>
                    <xs:documentation xml:lang="de-DE">DECOR building blocks</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="fhir">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7 FHIR</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 FHIR</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 FHIR</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR® bouwstenen, compatibiliteit met versie en andere capaciteiten zoals welke resources deze levert, vast te stellen op basis van de Conformance profile op het endpoint</xs:documentation>
                    <xs:documentation xml:lang="en-US">HL7 FHIR® building blocks, compatibility with version and other capabilities such as which resources it serves to be determined based on the Conformance profile on the endpoint</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR® building blocks, compatibility with version and other capabilities such as which resources it serves to be determined based on the Conformance profile on the endpoint</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <!-- http://www.w3.org/TR/REC-xml/#NT-Name - didn't know how to code hex chars in pattern or I would have -->
    <xs:simpleType name="NamespacePrefix">
        <xs:restriction base="xs:string">
            <xs:pattern value="[^\s:\.0-9-][^\s:]*:"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="contact">
        <xs:complexType>
            <xs:attribute name="email" type="EmailType"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="DecorAndOtherObjectTypes">
        <xs:union memberTypes="DecorObjectType FhirObjectType"/>
    </xs:simpleType>
    <xs:simpleType name="FhirObjectType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">HL7 FHIR®© Object Types. Note: should you ever change list, please also see schematron check with name="Validate Ids". http://hl7.org/fhir/</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="FHIR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">FHIR</xforms:label>
                        <xforms:label xml:lang="en-US">FHIR</xforms:label>
                        <xforms:label xml:lang="de-DE">FHIR</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">FHIR</xs:documentation>
                    <xs:documentation xml:lang="en-US">FHIR</xs:documentation>
                    <xs:documentation xml:lang="de-DE">FHIR</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DecorObjectType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Decor Object Types. Note: should you ever change list, please also see schematron check with name="Validate Ids".</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="DS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Dataset</xforms:label>
                        <xforms:label xml:lang="en-US">Dataset</xforms:label>
                        <xforms:label xml:lang="de-DE">Datensatz</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">Dataset</xs:documentation>
                    <xs:documentation xml:lang="en-US">Dataset</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Datensatz</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DE">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Datasetconcept</xforms:label>
                        <xforms:label xml:lang="en-US">Data Element</xforms:label>
                        <xforms:label xml:lang="de-DE">Datenelement</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">datasetconcept</xs:documentation>
                    <xs:documentation xml:lang="en-US">data element</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Datenelement</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Scenario</xforms:label>
                        <xforms:label xml:lang="en-US">Scenario</xforms:label>
                        <xforms:label xml:lang="de-DE">Szenario</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">scenario</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">scenario</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Szenario</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Transactie</xforms:label>
                        <xforms:label xml:lang="en-US">Transaction</xforms:label>
                        <xforms:label xml:lang="de-DE">Transaktion</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">transactie</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">transaction</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Transaktion</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Actoren</xforms:label>
                        <xforms:label xml:lang="en-US">Actors</xforms:label>
                        <xforms:label xml:lang="d-DE">Akteure</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">actoren</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">actors</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Aktoren</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Waardelijst</xforms:label>
                        <xforms:label xml:lang="en-US">Value Set</xforms:label>
                        <xforms:label xml:lang="de-DE">Value Set</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">value set</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">waardelijst</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Value Set</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Issue</xforms:label>
                        <xforms:label xml:lang="en-US">Issue</xforms:label>
                        <xforms:label xml:lang="de-DE">Vorgang</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">issue</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">issue</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Vorgang</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Regel</xforms:label>
                        <xforms:label xml:lang="en-US">Rule</xforms:label>
                        <xforms:label xml:lang="de-DE">Regel</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">regel (intern)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">rule (internal)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Regel (intern)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template</xforms:label>
                        <xforms:label xml:lang="en-US">Template</xforms:label>
                        <xforms:label xml:lang="de-DE">Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">template</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">template</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Conceptenlijst</xforms:label>
                        <xforms:label xml:lang="en-US">Concept list</xforms:label>
                        <xforms:label xml:lang="de-DE">Konzeptliste</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">conceptenlijst</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">concept list</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Konzeptliste</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template-element</xforms:label>
                        <xforms:label xml:lang="en-US">Template Element</xforms:label>
                        <xforms:label xml:lang="de-DE">Template-Element</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">template-element</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">template element</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Template-Element</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SX">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Testscenario</xforms:label>
                        <xforms:label xml:lang="en-US">Test Scenario</xforms:label>
                        <xforms:label xml:lang="de-DE">Test-Szenario</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">testscenario</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">test scenario</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Testszenario</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TX">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Test datasetconcept</xforms:label>
                        <xforms:label xml:lang="en-US">Test Data Element</xforms:label>
                        <xforms:label xml:lang="de-DE">Test Data Element</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">test datasetconcept</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">test data element</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Testdaten-Element</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EX">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Voorbeeldtransactie</xforms:label>
                        <xforms:label xml:lang="en-US">Example transaction</xforms:label>
                        <xforms:label xml:lang="de-DE">Beispiel-Transaktion</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Example transaction</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Voorbeeldtransactie</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Beispiel-Transaktion</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QX">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Testeisen</xforms:label>
                        <xforms:label xml:lang="en-US">Test requirements</xforms:label>
                        <xforms:label xml:lang="de-DE">Test-Anorderung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Test profile</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Test requirements</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Test-Anorderung</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Community</xforms:label>
                        <xforms:label xml:lang="en-US">Community</xforms:label>
                        <xforms:label xml:lang="de-DE">Community</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Community. Expectation is that the DECOR-project assigns ids to communities under this base id, and communities branch under this base</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Community. Verwachting is dat het DECOR-project id's toekent aan communities en dat zij verder vertakken onder deze basis</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Community. Expectation is that the DECOR-project assigns ids to communities under this base id, and communities branch under this base</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Codesysteem</xforms:label>
                        <xforms:label xml:lang="en-US">Code system</xforms:label>
                        <xforms:label xml:lang="de-DE">Codesystem</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Code system</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Codesysteem</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Codesystem</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!--<xs:enumeration value="ID">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Identificatiekoppeling</xforms:label>
                        <xforms:label xml:lang="en-US">Identifier association</xforms:label>
                        <xforms:label xml:lang="de-DE">Identifier association</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Identifier association</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Identificatiekoppeling</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Identifier association</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Terminologiekoppeling</xforms:label>
                        <xforms:label xml:lang="en-US">Terminology association</xforms:label>
                        <xforms:label xml:lang="de-DE">Terminology association</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Identifier association</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Terminologiekoppeling</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Terminology association</xs:documentation>
                </xs:annotation>
            </xs:enumeration>-->
            <xs:enumeration value="MP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Concept Map</xforms:label>
                        <xforms:label xml:lang="en-US">Concept Map</xforms:label>
                        <xforms:label xml:lang="de-DE">Concept Map</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Concept Map</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Concept Map</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Concept Map</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">StructureDefinition</xforms:label>
                        <xforms:label xml:lang="en-US">StructureDefinition</xforms:label>
                        <xforms:label xml:lang="de-DE">StructureDefinition</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR StructureDefinition</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR StructureDefinition</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR StructureDefinition</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QQ">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Questionnaire</xforms:label>
                        <xforms:label xml:lang="en-US">Questionnaire</xforms:label>
                        <xforms:label xml:lang="de-DE">Questionnaire</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR Questionnaire</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR Questionnaire</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR Questionnaire</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">QuestionnaireResponse</xforms:label>
                        <xforms:label xml:lang="en-US">QuestionnaireResponse</xforms:label>
                        <xforms:label xml:lang="de-DE">QuestionnaireResponse</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR QuestionnaireResponse</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR QuestionnaireResponse</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR QuestionnaireResponse</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QE">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Questionnaire (enriched)</xforms:label>
                        <xforms:label xml:lang="en-US">Questionnaire (enriched)</xforms:label>
                        <xforms:label xml:lang="de-DE">Questionnaire (enriched)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Browser Code System</xforms:label>
                        <xforms:label xml:lang="nl-NL">Browser Codesysteem</xforms:label>
                        <xforms:label xml:lang="de-DE">Browser Codesystem</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Browser Code System. Contains de-normalized items for speedy browsing</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Browser Codesysteem. Bevat gedenormaliseerde items voor snel browsen</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Browser Codesystem. Enthält denormalisierte Elemente für schnelles Browsen</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IG">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Implementation Guide</xforms:label>
                        <xforms:label xml:lang="nl-NL">Implementation Guide</xforms:label>
                        <xforms:label xml:lang="de-DE">Implementation Guide</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Implementation Guide (ART-DECOR)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Implementation Guide (ART-DECOR)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Implementation Guide (ART-DECOR)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DecorAndOtherObjectFormats">
        <xs:union memberTypes="DecorObjectFormat FhirObjectFormat NonEmptyString"/>
    </xs:simpleType>
    <xs:simpleType name="FhirObjectFormat">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">HL7 FHIR®© Object Formats. Actually matching HL7 FHIR Server package versions. http://hl7.org/fhir/</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">dstu2</xforms:label>
                        <xforms:label xml:lang="en-US">dstu2</xforms:label>
                        <xforms:label xml:lang="de-DE">dstu2</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">DSTU2 otherwise known as 1.0.2</xs:documentation>
                    <xs:documentation xml:lang="en-US">DSTU2 otherwise known as 1.0.2</xs:documentation>
                    <xs:documentation xml:lang="de-DE">DSTU2 otherwise known as 1.0.2</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">stu3</xforms:label>
                        <xforms:label xml:lang="en-US">stu3</xforms:label>
                        <xforms:label xml:lang="de-DE">stu3</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">r4</xforms:label>
                        <xforms:label xml:lang="en-US">r4</xforms:label>
                        <xforms:label xml:lang="de-DE">r4</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <!--<xs:enumeration value="4.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">r4b</xforms:label>
                        <xforms:label xml:lang="en-US">r4b</xforms:label>
                        <xforms:label xml:lang="de-DE">r4b</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="5.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">r5</xforms:label>
                        <xforms:label xml:lang="en-US">r5</xforms:label>
                        <xforms:label xml:lang="de-DE">r5</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>-->
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CdaObjectFormat">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">HL7 CDA®© Object Formats. http://hl7.org/fhir/</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="R1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA R1</xforms:label>
                        <xforms:label xml:lang="en-US">CDA R1</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA R1</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="R2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA R2</xforms:label>
                        <xforms:label xml:lang="en-US">CDA R2</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA R2</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="R2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA R2.1</xforms:label>
                        <xforms:label xml:lang="en-US">CDA R2.1</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA R2.1</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SupportedStandardTypes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Allows both OIDs for codesystems or special 'nullFlavor'</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="CdaObjectFormat FhirObjectFormat"/>
    </xs:simpleType>
    <xs:simpleType name="DecorObjectFormat">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Decor Object Formats.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="HTML">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HTML</xforms:label>
                        <xforms:label xml:lang="en-US">HTML</xforms:label>
                        <xforms:label xml:lang="de-DE">HTML</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">HTML</xs:documentation>
                    <xs:documentation xml:lang="en-US">HTML</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HTML</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XML">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">XML</xforms:label>
                        <xforms:label xml:lang="en-US">XML</xforms:label>
                        <xforms:label xml:lang="de-DE">XML</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">XML</xs:documentation>
                    <xs:documentation xml:lang="en-US">XML</xs:documentation>
                    <xs:documentation xml:lang="de-DE">XML</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JSON">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">JSON</xforms:label>
                        <xforms:label xml:lang="en-US">JSON</xforms:label>
                        <xforms:label xml:lang="de-DE">JSON</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">JSON</xs:documentation>
                    <xs:documentation xml:lang="en-US">JSON</xs:documentation>
                    <xs:documentation xml:lang="de-DE">JSON</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CSV">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CSV</xforms:label>
                        <xforms:label xml:lang="en-US">CSV</xforms:label>
                        <xforms:label xml:lang="de-DE">CSV</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">CSV</xs:documentation>
                    <xs:documentation xml:lang="en-US">CSV</xs:documentation>
                    <xs:documentation xml:lang="de-DE">CSV</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SQL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SQL</xforms:label>
                        <xforms:label xml:lang="en-US">SQL</xforms:label>
                        <xforms:label xml:lang="de-DE">SQL</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">SQL</xs:documentation>
                    <xs:documentation xml:lang="en-US">SQL</xs:documentation>
                    <xs:documentation xml:lang="de-DE">SQL</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SVS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SVS</xforms:label>
                        <xforms:label xml:lang="en-US">SVS</xforms:label>
                        <xforms:label xml:lang="de-DE">SVS</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="nl-NL">SVS</xs:documentation>
                    <xs:documentation xml:lang="en-US">SVS</xs:documentation>
                    <xs:documentation xml:lang="de-DE">SVS</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ProjectHistory">
        <xs:sequence>
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="date" type="TimeStampNoTimezone"/>
        <xs:attribute name="by" type="ShortDescriptiveName"/>
        <xs:attribute name="statusCode" type="ReleaseStatusCodeLifeCycle" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ProjectRelease">
        <xs:sequence>
            <xs:element name="note" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A human readable release note for convenient human rendition; not used by an application.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="date" type="TimeStampNoTimezone"/>
        <xs:attribute name="by" type="ShortDescriptiveName"/>
        <xs:attribute name="versionLabel" type="ShortDescriptiveName">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A human readable version number or version label for convenient human rendition; not used by an application.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="statusCode" type="ReleaseStatusCodeLifeCycle" use="optional"/>
        <xs:attribute name="implementationguide" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Whether this release bears an implementation guide.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="datasets">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="dataset" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:unique name="dataset-idversion-unique">
            <xs:selector xpath="dataset"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <xs:unique name="concept-idversion-unique">
            <xs:selector xpath=".//concept"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <!-- Tempting, but does not fly for compilations -->
        <!--<xs:unique name="conceptlist-id-unique">
            <xs:selector xpath=".//conceptList"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>-->
        <!--<xs:unique name="conceptlistconcept-id-unique">
            <xs:selector xpath=".//conceptList/concept"/>
            <xs:field xpath="@id"/>
        </xs:unique>-->
    </xs:element>
    <xs:element name="dataset">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="1" maxOccurs="unbounded"/>

                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Dataset for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="property" type="ArbitraryPropertyType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Dataset properties</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the dataset and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>

                <xs:element name="relationship" type="ObjectRelationships" minOccurs="0" maxOccurs="unbounded"/>
                <!-- normal concepts -->
                <xs:element name="concept" type="DataSetConcept" minOccurs="1" maxOccurs="unbounded"/>
                <!-- max of 1 recycle bin with "trashed" concepts -->
                <xs:element name="recycle" type="DataSetRecycleBin" minOccurs="0" maxOccurs="1"/>

            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="required"/>
            <xs:attribute ref="canonicalUri" use="optional"/>
            <xs:attributeGroup ref="VersionHandling"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="required"/>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="DatasetCompilationAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="ObjectRelationships">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The relationships of the current object to another object. Objects MAY have one or more relationships. Each relationship SHALL point to an object of the same nature. Examples include: datasets can relate to datasets, concepts can relate to concepts, value sets can relate to value sets. Note that relationships are implicit, and unchecked. They are a hint to the reader.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains name and description of the referred object in relationship</xs:documentation>
                </xs:annotation>
            </xs:any>
        </xs:sequence>
        <xs:attribute name="type" type="RelationshipTypes" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The @type of the relationship, at this point in time something like "SPEC", "GEN", "EQUIV", "VERSION", etc.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ref" type="BasicIdOrOid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects id or name. Note that while reference by name is supported, it is also discouraged and should only be used when the object is not a DECOR object, but still needs referencing.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects @effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- attribute added in compilation -->
        <!--<xs:attribute ref="refdisplay" use="optional"/>-->

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="InheritCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="ValueSetRelationships">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The relationships of the current object to another object. Objects MAY have one or more relationships. Each relationship SHALL point to an object of the same nature. Examples include: datasets can relate to datasets, concepts can relate to concepts, value sets can relate to value sets. Note that relationships are implicit, and unchecked. They are a hint to the reader.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains name and description of the referred object in relationship</xs:documentation>
                </xs:annotation>
            </xs:any>
        </xs:sequence>
        <xs:attribute name="type" type="RelationshipTypes" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The @type of the relationship, at this point in time something like "SPEC", "GEN", "EQUIV", "VERSION", etc.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ref" type="BasicIdOrOid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects id or name. Note that while reference by name is supported, it is also discouraged and should only be used when the object is not a DECOR object, but still needs referencing.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects @effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- attribute added in compilation -->
        <!--<xs:attribute ref="refdisplay" use="optional"/>-->

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="InheritCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="QuestionnaireRelationships">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The relationships of the a questionnaire or questionnaire response to another object which might be an transaction (type=DRIV) or a answer to questionnaire (type=ANSW). Note that relationships are implicit, and unchecked. They are a hint to the reader. </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Name(s) of the transaction/questionnaire this relationship points to. Added in at compilation time. DO NOT ADD/EDIT yourself.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="QuestionnaireRelationshipTypes" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The @type of the relationship, at this point in time something like "DRIV" etc.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ref" type="BasicIdOrOid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects id or name. Note that while reference by name is supported, it is also discouraged and should only be used when the object is not a DECOR object, but still needs referencing.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the objects @effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="QuestionnaireRelationshipCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="ArbitraryPropertyType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Adds an arbitrary property as name/value pair to its parent. This property SHALL NOT signify/trigger any specific ART-DECOR behavior. This is useful for storing specific information that has no other obvious place and needs to be in a computable place. Examples include external ids, keywords, review status etc. These properties are not meant to be displayed in all contexts, but only in user defined reports/overviews. The 'value' is mixed XHTML compatible content</xs:documentation>
        </xs:annotation>
        <xs:complexContent mixed="true">
            <xs:extension base="VariousMixedContent">
                <xs:attribute name="name" type="NonEmptyString" use="optional">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Name of the property.</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="datatype" type="DataSetValueType" default="text"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="DataSetConceptValue">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="property" type="DataSetValueProperty" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="conceptList" type="DataSetConceptList" minOccurs="0" maxOccurs="1">
                <xs:unique name="conceptlistconcept-id-unique">
                    <xs:selector xpath=".//concept"/>
                    <xs:field xpath="@id"/>
                </xs:unique>
            </xs:element>
            <xs:element ref="example" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
        <xs:attribute name="type" type="DataSetValueType" use="required"/>
    </xs:complexType>
    <xs:complexType name="DataSetValueProperty">
        <xs:attribute name="unit" type="NonEmptyString">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Eenheid</xforms:label>
                    <xforms:label xml:lang="en-US">Unit</xforms:label>
                    <xforms:label xml:lang="de-DE">Einheit</xforms:label>
                </xs:appinfo>
                <xs:documentation>unit for quantities</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currency" type="NonEmptyString">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Valuta</xforms:label>
                    <xforms:label xml:lang="en-US">Currency</xforms:label>
                    <xforms:label xml:lang="de-DE">Währung</xforms:label>
                </xs:appinfo>
                <xs:documentation>unit for monetary quantities</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minInclude" type="IntegerOrDecimalRange">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Minimum</xforms:label>
                    <xforms:label xml:lang="en-US">Minimum</xforms:label>
                    <xforms:label xml:lang="de-DE">Minimum</xforms:label>
                </xs:appinfo>
                <xs:documentation>range min include for quantities</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxInclude" type="IntegerOrDecimalRange">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Maximum</xforms:label>
                    <xforms:label xml:lang="en-US">Maximum</xforms:label>
                    <xforms:label xml:lang="de-DE">Maximum</xforms:label>
                </xs:appinfo>
                <xs:documentation>range max include for quantities</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fractionDigits" type="FractionDigitsType">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Decimalen</xforms:label>
                    <xforms:label xml:lang="en-US">Digits</xforms:label>
                    <xforms:label xml:lang="de-DE">Ziffern</xforms:label>
                </xs:appinfo>
                <xs:documentation>fraction digits for quantities, e.g. "1" for at least 1 or "1!" for exactly 1 or "3." for maximum 3</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timeStampPrecision" type="DataSetDateAndTimePrecision">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Tijdstempelprecisie</xforms:label>
                    <xforms:label xml:lang="en-US">Timestamp precision</xforms:label>
                    <xforms:label xml:lang="de-DE">Genauigkeit Zeitangabe</xforms:label>
                </xs:appinfo>
                <xs:documentation>precisions for timing specs</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="default" type="NonEmptyString">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Standard</xforms:label>
                    <xforms:label xml:lang="en-US">Default</xforms:label>
                    <xforms:label xml:lang="de-DE">Standard</xforms:label>
                </xs:appinfo>
                <xs:documentation>default value</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="fixed" type="NonEmptyString">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Vast</xforms:label>
                    <xforms:label xml:lang="en-US">Fixed</xforms:label>
                    <xforms:label xml:lang="de-DE">Fest</xforms:label>
                </xs:appinfo>
                <xs:documentation>fixed value</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minLength" type="SmallNonNegativeInteger">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Minimumlengte</xforms:label>
                    <xforms:label xml:lang="en-US">Minimum length</xforms:label>
                    <xforms:label xml:lang="de-DE">Minimale Länge</xforms:label>
                </xs:appinfo>
                <xs:documentation>min length for strings</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxLength" type="SmallNonNegativeInteger">
            <xs:annotation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Maximumlengte</xforms:label>
                    <xforms:label xml:lang="en-US">Maximum length</xforms:label>
                    <xforms:label xml:lang="de-DE">Maximale Länge</xforms:label>
                </xs:appinfo>
                <xs:documentation>max length for strings</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="DataSetDateAndTimePrecision">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Value Domain DateTime, Date and Time Precision</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="DataSetTimeStampPrecision DataSetTimePrecision"/>
    </xs:simpleType>
    <xs:simpleType name="DataSetDatePrecision">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Value Domain Date Precision</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Y">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">at least year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Y!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">at least month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Jahr (JJJJ) und Monat (MM)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YM!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Monat (MM) und Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YMD!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">dag (DD), maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">day (DD), month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Tag (TT), Monat (MM) und Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">day (DD), month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DataSetTimeStampPrecision">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Value Domain Date Time Stamp Precision</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="Y">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">at least year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Y!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">at least month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Jahr (JJJJ) und Monat (MM)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YM!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Monat (MM) und Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YMD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste dag (DD), maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">at least day (DD), month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Tag (TT), Monat (MM) und Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least day (DD), month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YMD!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">dag (DD), maand (MM) en jaar (JJJJ)</xforms:label>
                        <xforms:label xml:lang="en-US">day (DD), month (MM) and year (YYYY)</xforms:label>
                        <xforms:label xml:lang="de-DE">Tag (TT), Monat (MM) und Jahr (JJJJ)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">day (DD), month (MM) and year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YMDHM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste dag (DD), maand (MM) en jaar (JJJJ), uur (uu) en minuut (mm)</xforms:label>
                        <xforms:label xml:lang="en-US">at least day (DD), month (MM) and year (YYYY), hour (hh) and minute (mm)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Tag (TT), Monat (MM) und Jahr (JJJJ), Stunde (ss) und Minute (mm)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least day (DD), month (MM) and year (YYYY), hour (hh) and minute (mm)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DataSetTimePrecision">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Value Domain Time Precision</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="H">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste uren (HH)</xforms:label>
                        <xforms:label xml:lang="en-US">at least hours (HH)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Stunden (HH)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least year (YYYY)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="H!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">uren (HH)</xforms:label>
                        <xforms:label xml:lang="en-US">hours (HH)</xforms:label>
                        <xforms:label xml:lang="de-DE">Stunden (HH)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">hours (HH)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">tenminste uren (HH) en minuten (MM)</xforms:label>
                        <xforms:label xml:lang="en-US">at least hours (HH) and minuten (MM)</xforms:label>
                        <xforms:label xml:lang="de-DE">mindestens Stunden (HH) und Minuten (MM)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">at least hours (HH) and minuten (MM)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HM!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">uren (HH) en minuten (MM)</xforms:label>
                        <xforms:label xml:lang="en-US">hours (HH) and minuten (MM)</xforms:label>
                        <xforms:label xml:lang="de-DE">Stunden (HH) und Minuten (MM)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">hours (HH) and minuten (MM)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HMS!">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">uren (HH), minuten (MM) en seconden (SS)</xforms:label>
                        <xforms:label xml:lang="en-US">hours (HH), minutes (MM) and seconds (SS)</xforms:label>
                        <xforms:label xml:lang="de-DE">Stunden (HH), Minuten (MM) and seconds (SS)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">hours (HH), minutes (MM) and seconds (SS)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DataSetValueType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Concept Type for the Value Domain</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="string">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">String</xforms:label>
                        <xforms:label xml:lang="en-US">String</xforms:label>
                        <xforms:label xml:lang="de-DE">Zeichenkette</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Represents any text item, without visual formatting.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="code">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Code</xforms:label>
                        <xforms:label xml:lang="en-US">Code</xforms:label>
                        <xforms:label xml:lang="de-DE">Kode</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A system of valid symbols/codes, that substitute for specified concepts e.g. alpha, numeric, symbols and/or combinations, usually defined by a formal reference to a terminology or ontology, but may also be defined by the provision of text. Typically a symbol/code is expressed with a value for code, an identifier for the terminology or ontology it belongs to and at least one textual representation (display name).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="identifier">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Identificatie</xforms:label>
                        <xforms:label xml:lang="en-US">Identifier</xforms:label>
                        <xforms:label xml:lang="de-DE">Identifikator</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Type for representing identifiers of real-world entities. Typical identifiers include drivers licence number, social security number, prescription id, order id, and so on.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="date">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Datum</xforms:label>
                        <xforms:label xml:lang="en-US">Date</xforms:label>
                        <xforms:label xml:lang="de-DE">Datum</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Represents an absolute point in time, as measured on the Gregorian calendar, and specified only to the day. Semantics defined by ISO 8601. Used for recording dates in real world time. The partial form is used for approximate birth dates, dates of death, etc.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="datetime">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Datum/tijd</xforms:label>
                        <xforms:label xml:lang="en-US">Date/time</xforms:label>
                        <xforms:label xml:lang="de-DE">Datum/Zeit</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Represents an absolute point in time, specified to the second. Semantics defined by ISO 8601. Used for recording a precise point in real world time, e.g. the exact date and time of the birth of a baby, and for approximate time stamps, e.g. the origin of an history observation which is only partially known.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="time">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Tijd</xforms:label>
                        <xforms:label xml:lang="en-US">Time</xforms:label>
                        <xforms:label xml:lang="de-DE">Zeit</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Represents an point in time on the 24 hour clock without specifying the date, specified to the second. Semantics defined by ISO 8601. Used for recording a point in real world time, e.g. the hours to take medication (08, 12, 18 o'clock), exact time a baby was born, time of stopping CPR.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="quantity">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Hoeveelheid</xforms:label>
                        <xforms:label xml:lang="en-US">Quantity</xforms:label>
                        <xforms:label xml:lang="de-DE">Quantität</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Quantified type representing "scientific" quantities, i.e. quantities expressed as a magnitude and units. If not further specified with fractionDigits, a decimal number with optional decimal point (i.e. '3.14159265359'). There are some "special" quantities (used in healthcare), explained later: for time durations duration shall be used; for monetary amounts currency shall be used</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="duration">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Tijdsduur</xforms:label>
                        <xforms:label xml:lang="en-US">Duration</xforms:label>
                        <xforms:label xml:lang="de-DE">Dauer</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Is a quantity, represents a period of time with respect to a notional point in time, which is not specified. A sign may be used to indicate the duration is “backwards” in time rather than forwards.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Boolean</xforms:label>
                        <xforms:label xml:lang="en-US">Boolean</xforms:label>
                        <xforms:label xml:lang="de-DE">Boolescher Wert</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Items which are truly boolean data, such as true/false or yes/no answers.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="count">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Aantal</xforms:label>
                        <xforms:label xml:lang="en-US">Count</xforms:label>
                        <xforms:label xml:lang="de-DE">Zähler</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Countable (non-monetary) quantities. Used for countable types such as pregnancies, steps (taken by a physiotherapy patient), number of cigarettes smoked in a day.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ordinal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Ordinaal</xforms:label>
                        <xforms:label xml:lang="en-US">Ordinal</xforms:label>
                        <xforms:label xml:lang="de-DE">Ordinalzahl</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Models rankings and scores, e.g. pain, Apgar, reflex, ASA, Tanner values, etc, where there is a) implied ordering, b) no implication that the distance between each value is con- stant, and c) the total number of values is finite. Note that although the term ‘ordinal’ in mathematics means natural numbers only, here any integer is allowed, since negative and zero values are often used by medical professionals for values around a neutral point. Examples of sets of ordinal values: -3, -2, -1, 0, 1, 2, 3 (reflex response values); 0, 1, 2 (Apgar score values); 1, 2, 3, 4,... (ASA classification); I, II, III, IV, ... (Tanner scale)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="text">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Tekst</xforms:label>
                        <xforms:label xml:lang="en-US">Text</xforms:label>
                        <xforms:label xml:lang="de-DE">Text</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Represents a text item, which may contain any amount of legal characters arranged as e.g. words, sentences etc. Visual formatting and hyperlinks may be included.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="decimal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Decimaal getal</xforms:label>
                        <xforms:label xml:lang="en-US">Decimal number</xforms:label>
                        <xforms:label xml:lang="de-DE">Dezimalzahl</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Decimal number (rarely used, in most cases a decimal number is actually a quantity).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="blob">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Binair</xforms:label>
                        <xforms:label xml:lang="en-US">Binary</xforms:label>
                        <xforms:label xml:lang="de-DE">Binärinformation</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Things that are typically stored as binary objects in the computer world and need to be rendered appropriately, e.g. images: like X-rays, computertomographic images and scans.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="complex">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Samengestelde gegevens</xforms:label>
                        <xforms:label xml:lang="en-US">Collection of data</xforms:label>
                        <xforms:label xml:lang="de-DE">Zusammenstellung von Daten</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Non-atomic datatypes which are not explictly further defined in the dataset itself. Example: 'address' or 'person name'. Usually complex types are assumed to be well-known enough not to warrant further decomposition in the dataset itself.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DataSetConcept">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Concept, is either a group or an item.</xs:documentation>
            <xs:documentation xml:lang="en-US">A group may contain other groups or items and does not contain a operationalizations or value domain definitions</xs:documentation>
            <xs:documentation xml:lang="en-US">An item typically has operationalizations and value domain definitions and may not contain a concept</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationImplementation"/>
            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationContext"/>
            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationConditions"/>
            <xs:element name="inherit" type="InheritDefinition" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept inherits properties from another concept. Inherit is pulled into the current structure and will fail on circular references</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="contains" type="ContainsDefinition" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept references properties from another concept. Contains is not pulled into the current structure and is suited for circular references</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept Name (short). One name per language.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="synonym" type="BusinessNameWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Synonym for a Dataset Concept Name (short). Can have multiple synonyms per language.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept Description (long). One to many descriptions per language</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="source" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept Source, human readable hint where this data element originally comes from</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="rationale" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset rationale, human readable justification or explanation why this concept is present</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="comment" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept comments</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="property" type="ArbitraryPropertyType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept properties</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="relationship" type="ObjectRelationships" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept relationship to another dataset concept.</xs:documentation>
                </xs:annotation>
            </xs:element>

            <!-- following elements for type item only -->
            <xs:element name="operationalization" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept Operationalization, e.g. how to measure, obtain, specify the value of an observation</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="valueDomain" type="DataSetConceptValue" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept Value Domain, properties of the value in an instance</xs:documentation>
                </xs:annotation>
            </xs:element>

            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationValueSet"/>
            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationTerminologyAssociation"/>

            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationIdentifierAssociation"/>

            <!-- Only relevant after compilation -->
            <xs:group ref="DatasetConceptCompilationCommunity"/>

            <!-- following elements for type group only -->
            <xs:element name="concept" type="DataSetConcept" minOccurs="0" maxOccurs="unbounded"/>

            <!-- history -->
            <xs:element name="history" type="DataSetConceptHistory" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Dataset Concept History</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <!--
            attributes checked by schematrons, see above
        -->
        <xs:attribute name="id" type="Oid" use="required"/>
        <xs:attribute ref="canonicalUri" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">2023-02-06 Deprecated. The use it had as FHIR DataElement.url no longer exists as-of FHIR R4</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="VersionHandling"/>
        <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="required"/>
        <xs:attribute name="type" type="DataSetConceptType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Prohibited when concept is a reference through inherit or contains. Required in all other cases.</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="DatasetConceptCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="DataSetConceptHistory">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Concept History of either a group or an item.</xs:documentation>
            <xs:documentation xml:lang="en-US">A Concept History may not contain nested history items</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="concept" type="DataSetConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="validTimeHigh" use="required" type="TimeStampNoTimezone">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The time that the given information ceased to be correct.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="DataSetConceptType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Concept Type</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="group">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Groep</xforms:label>
                        <xforms:label xml:lang="en-US">Group</xforms:label>
                        <xforms:label xml:lang="de-DE">Gruppe</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">group of dataset items</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">groep van dataset items</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Gruppe von Datensatz-Items</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="item">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Item</xforms:label>
                        <xforms:label xml:lang="en-US">Item</xforms:label>
                        <xforms:label xml:lang="de-DE">Item</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">dataset item</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">datasetitem</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Datensatz-Item</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DataSetRecycleBin">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The one and only container per dataset that acts as a Recycle Bin.</xs:documentation>
            <xs:documentation xml:lang="en-US">It is similar to a dataset concept group and may contain other groups or items from the dataset.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="concept" type="DataSetConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute ref="lastModifiedDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies last point in time that the object was changed. While any versionable object could principally be marked using this attribute, the list of objects that need this in practice is scoped to be dataset, scenario, transaction, valueSet, codeSystem, template. This list may be extended over time.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="ProcessCode">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Type of processing</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="strict">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Strikt</xforms:label>
                        <xforms:label xml:lang="en-US">Strict</xforms:label>
                        <xforms:label xml:lang="de-DE">Strikt</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="lax">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Los</xforms:label>
                        <xforms:label xml:lang="en-US">Lax</xforms:label>
                        <xforms:label xml:lang="de-DE">Locker</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DataSetConceptList">
        <xs:sequence>
            <xs:element name="concept" type="DataSetConceptListConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Defines the globally unique identifier for this conceptList and may be used to reference it. Concept lists SHOULD carry either @id or @ref</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ref" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a conceptList/@id. Concept lists SHOULD carry either @id or @ref</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="DataSetConceptListConcept">
        <xs:sequence>
            <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="synonym" type="BusinessNameWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Synonym for a Dataset Concept List Item Name (short). Can have multiple synonyms per language.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="Oid" use="optional"/>
        <xs:attribute name="exception" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">indicates whether this is an exceptional concept (for example: unknown)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- AH: 2016-03-02 Brings dataset conceptList/concepts on par with valueSet/conceptList/concepts
                It may take a very long time between creating the dataset and adding the bindings. It also 
                opens discussion between terminologists and the datset designers that otherwise would have been hidden
                when the level/type in the dataset cannot be matched in the terminology.
        -->
        <xs:attribute name="level" type="xs:integer" use="optional"/>
        <xs:attribute name="type" type="VocabType" use="optional"/>
        <!-- AH: 2019-05-22 Brings dataset conceptList/concepts on par with valueSet/conceptList/concepts
                Note that coding of ordinals may never happen, but if it does, the terminologist will know 
                what the dataset designer meant -->
        <xs:attribute ref="ordinal" use="optional"/>
    </xs:complexType>
    <xs:element name="scenarios">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="actors" minOccurs="1" maxOccurs="1"/>
                <xs:element ref="scenario" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="instances" minOccurs="0" maxOccurs="unbounded"/>
                <!--<xs:choice maxOccurs="unbounded">
                    <xs:element ref="questionnaire" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element ref="questionnaireresponse" minOccurs="0" maxOccurs="unbounded"/>
                </xs:choice>-->
            </xs:sequence>
        </xs:complexType>
        <xs:unique name="scenario-contents-idversion-unique">
            <xs:selector xpath=".//*"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
    </xs:element>
    <xs:element name="instances">
        <xs:complexType>
            <xs:sequence>
                <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute ref="displayName" use="optional"/>
            <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required"/>
            <xs:attribute name="ref" type="Oid" use="required"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="required"/>
            <xs:attribute name="process" type="ProcessCode"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="scenario">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Scenario that describes a business process</xs:documentation>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="trigger" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="condition" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>

                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Scenario for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="property" type="ArbitraryPropertyType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Scenario properties</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the scenario and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>

                <xs:element ref="transaction" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
            <!-- Deprecated. Having a name element and a @displayName attribute makes no sense. Was not in use at deprecation time -->
            <!--xs:attribute name="displayName" type="ShortDescriptiveName" use="optional"/-->
            <xs:attribute name="id" use="required" type="Oid"/>
            <xs:attributeGroup ref="VersionHandling"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="transaction">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Transaction group or singular transaction</xs:documentation>
                <xs:documentation xml:lang="nl-NL">Transactiegroep of enkelvoudige transactie</xs:documentation>
            </xs:annotation>
            <xs:sequence minOccurs="0">
                <xs:sequence>
                    <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                    <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="trigger" type="TransactionTrigger" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="condition" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="dependencies" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>

                    <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Transaction for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="property" type="ArbitraryPropertyType" minOccurs="0" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">Transaction properties</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">A copyright statement relating to the transaction and/or its contents.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                </xs:sequence>
                <xs:choice>
                    <xs:sequence>
                        <xs:element name="actors" type="ActorsReference" minOccurs="1" maxOccurs="1"/>
                        <xs:element ref="representingTemplate" minOccurs="0"/>
                    </xs:sequence>
                    <xs:element ref="transaction" minOccurs="0" maxOccurs="unbounded"/>
                </xs:choice>
            </xs:sequence>
            <!-- Deprecated. Having a name element and a @displayName attribute makes no sense. Was not in use at deprecation time -->
            <!--xs:attribute name="displayName" type="ShortDescriptiveName" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Display name for this transaction</xs:documentation>
                </xs:annotation>
            </xs:attribute-->
            <xs:attribute name="id" use="required" type="Oid">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Globally and persistently unique identifier</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="canonicalUri" use="optional"/>
            <xs:attribute name="model" type="xs:NCName">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Root element name for the XML structure without namespace prefix that represents this transaction. For HL7 V3 messaging this could be REPC_IN004410UV, for HL7 V2 messaging this could be ADT_A01</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="label" type="xs:NCName">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Constitutes the value for the schematron file with the project prefix (//project/@prefix)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="type" type="TransactionType" use="required"/>
            <xs:attributeGroup ref="VersionHandling"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="DatasetCompilationAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="questionnaire">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Questionnaire</xs:documentation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">Questionnaire</xforms:label>
                    <xforms:label xml:lang="en-US">Questionnaire</xforms:label>
                    <xforms:label xml:lang="de-DE">Questionnaire</xforms:label>
                </xs:appinfo>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="classification" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="tag" type="NonEmptyString" minOccurs="0" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">The tag elements could be incorporated to specify any number of tags for search purposes</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="relationship" type="QuestionnaireRelationships" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="subjectType" type="QuestionnaireSubjectType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The types of subjects that can be the subject of responses created for the questionnaire.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Questionnaire for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Questionnaire for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="code" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Concept that represents the overall questionnaire</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A statement about the purpose of the Questionnaire</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the Questionnaire and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jurisdiction" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Intended jurisdiction for questionnaire (if applicable)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="contained" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">TODO. Contains exactly one object related to this Questionnaire. The most common object is ValueSet</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:any processContents="skip" minOccurs="1" maxOccurs="1"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="expressionVariable" minOccurs="0" maxOccurs="unbounded" type="Expression"/>
                
                <xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="QuestionnaireItemType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Questions and sections within the Questionnaire</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- FHIR object
                <xs:choice maxOccurs="1">
                    
                    <xs:any namespace="http://hl7.org/fhir" minOccurs="0" maxOccurs="1" processContents="skip">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">If the FHIR Questionnaire is contained as the source it goes here</xs:documentation>
                        </xs:annotation>
                    </xs:any>
                </xs:choice>
                -->
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The identifying OID of the Questionnaire</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="canonicalUri" use="optional"/>
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Not in use yet: Reference to a Questionnaire @id. Questionnaire SHALL carry either @id or @ref</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- we do not need a link to a FHIR resource any more
            <xs:attribute name="link" type="xs:anyURI" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">If the FHIR Questionnaire is contained as a reference, this link points to the source</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            -->
            <xs:attribute ref="experimental" use="optional"/>

            <!-- attributes of Questionnaire (validation done by embedded schematron) -->
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
            <!--<xs:attribute ref="displayName" use="optional"/>-->
            <!-- if @ref, flexibility -->
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Not in use yet: Reference to a Questionnaire. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- QQ vs QE -->
            <xs:attribute name="enhanced" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Identifying the Questionnaire as Enhanced (type is QE), thus edited, modified, enriched.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- we do not need a FHIR version indication
                <xs:attribute name="fhirVersion" type="FhirObjectFormat" use="required"/>
            -->
        </xs:complexType>
        <xs:unique name="questionnaireversion-item-linkid-unique">
            <xs:selector xpath=".//item"/>
            <xs:field xpath="@linkId"/>
        </xs:unique>
        <xs:unique name="questionnaireversion-item-id-unique">
            <xs:selector xpath=".//item"/>
            <xs:field xpath="@id"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="QuestionnaireSubjectType">
        <xs:attribute name="code" type="FHIRResourceType" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">FHIR Resource type.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="QuestionnaireItemType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Questions and sections within the Questionnaire</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="text" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The name of a section, the text of a question or text content for a display item.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="synonym" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Whenever concept operationalization was taken as the Questionnaire item text synonym keeps the original concept name.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="operationalization" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A help text candidate containing instructions how to answer the question. This is populated only when concept operationalization does not contain a question mark (which is considered then as Questionnaire item text).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="code" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="designNote" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Design comments</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="itemControl" minOccurs="0" maxOccurs="1" type="ValueCodingType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="unitOption" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A unit that the user may choose when providing a quantity value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="enableWhen" minOccurs="0" maxOccurs="unbounded" type="EnableWhenConditionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Only allow data when</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="answerValueSet" minOccurs="0" maxOccurs="unbounded" type="ValueSetReference">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Valueset containing permitted answers.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="answerIntensionalInclude" minOccurs="0" maxOccurs="0" type="IncludeIntensionalValueSet">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Valueset containing a single intensional include instruction for the answer set.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="answerOption" minOccurs="0" maxOccurs="unbounded" type="AnswerOptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Valueset containing permitted answers.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="initial" minOccurs="0" maxOccurs="unbounded" type="InitialOptionType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Initial value(s) when item is first rendered</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="terminologyServer" minOccurs="0" maxOccurs="unbounded" type="TerminologyServerReference">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Preferred terminology server.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="itemExtractionContext" minOccurs="0" maxOccurs="1" type="ItemExtractionContextType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Specifies a query that identifies the resource (or set of resources for a repeating item) to be extracted from this item once the QuestionnaireResponse is complete.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="expressionVariable" minOccurs="0" maxOccurs="unbounded" type="Expression">
                <xs:annotation>
                    <xs:documentation>http://hl7.org/fhir/R5/metadatatypes.html#expression</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="calculatedExpression" minOccurs="0" maxOccurs="unbounded" type="Expression">
                <xs:annotation>
                    <xs:documentation>http://hl7.org/fhir/uv/sdc/StructureDefinition-sdc-questionnaire-calculatedExpression.html</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="unit" minOccurs="0" maxOccurs="1" type="ValueCodingType">
                <xs:annotation>
                    <xs:documentation>http://hl7.org/fhir/extensions/StructureDefinition-questionnaire-unit.html. Provides a computable unit of measure associated with numeric questions to support subsequent computation on responses. This is for use on items of type integer and decimal, and its purpose is to support converting the integer or decimal answer into a Quantity when extracting the data into a resource. If a 'display' value is provided for valueCoding of this extension and the associated question item does not have a child 'display' item with an itemControl extension of 'unit', then form fillers SHOULD take the display value of this extension and use it as as the unit display.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="item" minOccurs="0" maxOccurs="unbounded" type="QuestionnaireItemType">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Questions and sections within the Questionnaire</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="id" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Unique id for inter-element referencing</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkId" type="NonEmptyString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="definition" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">This element is a URI that refers to an Element Definition that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prefix" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="QuestionnaireTypeOfItemType" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, coded choice, etc.).</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableBehavior" type="EnableBehaviorType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Controls how multiple enableWhen values are interpreted - whether all or any must be true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="required" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An indication, if true, that the item must be present in a "completed" QuestionnaireResponse. If false, the item may be skipped when answering the questionnaire.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="repeats" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An indication, if true, that a QuestionnaireResponse for this item may include multiple answers associated with a single instance of this item (for question-type items) or multiple repetitions of the item (for group-type items)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="readOnly" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minLength" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The minimum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxLength" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The maximum number of characters that are permitted in the answer to be considered a "valid" QuestionnaireResponse.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="minValue" type="BoundaryType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The inclusive lower bound on the range of allowed values for the data element.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxValue" type="BoundaryType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The inclusive upper bound on the range of allowed values for the data element.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="maxDecimalPlaces" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies the maximum number of decimal places that may be specified for the data element.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="renderingStyle" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Specifies how item should be rendered when displayed, equivalent to setting the HTML "style" attribute.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="hiddenItem" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Don't display item to the user</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="AnswerOptionType">
        <xs:choice>
            <xs:element name="valueInteger" minOccurs="0" maxOccurs="1" type="ValueIntegerType"/>
            <xs:element name="valueDate" minOccurs="0" maxOccurs="1" type="ValueDateType"/>
            <xs:element name="valueTime" minOccurs="0" maxOccurs="1" type="ValueTimeType"/>
            <xs:element name="valueString" minOccurs="0" maxOccurs="unbounded" type="ValueStringType"/>
            <xs:element name="valueCoding" minOccurs="0" maxOccurs="1" type="ValueCodingType"/>
        </xs:choice>
        <xs:attribute ref="ordinal" use="optional"/>
        <xs:attribute name="initialSelected" type="xs:boolean" use="optional"/>
    </xs:complexType>
    <xs:complexType name="EnableWhenConditionType">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="answerBoolean" minOccurs="0" maxOccurs="1" type="ValueBooleanType"/>
            <xs:element name="answerDecimal" minOccurs="0" maxOccurs="1" type="ValueDecimalType"/>
            <xs:element name="answerInteger" minOccurs="0" maxOccurs="1" type="ValueIntegerType"/>
            <xs:element name="answerDate" minOccurs="0" maxOccurs="1" type="ValueDateType"/>
            <xs:element name="answerDateTime" minOccurs="0" maxOccurs="1" type="ValueDateTimeType"/>
            <xs:element name="answerTime" minOccurs="0" maxOccurs="1" type="ValueTimeType"/>
            <xs:element name="answerString" minOccurs="0" maxOccurs="1" type="ValueStringType"/>
            <xs:element name="answerCoding" minOccurs="0" maxOccurs="1" type="ValueCodingType"/>
            <xs:element name="answerQuantity" minOccurs="0" maxOccurs="1" type="ValueQuantityType"/>
        </xs:choice>
        <xs:attribute name="id" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Unique id for inter-element referencing</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="question" type="NonEmptyString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Question determined by the item linkeId that determines whether item is enabled</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="operator" type="ConditionOperatorType" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Question determined by the item linkeId that determines whether item is enabled</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="EnableBehaviorType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Multiple enableWhen control: all or any must be true</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationString">
            <xs:enumeration value="all">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">All of multiple enableWhen conditions must be true</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="any">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">At least one (any) of multiple enableWhen conditions must be true</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ConditionOperatorType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The operator between question and answer</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationString">
            <xs:enumeration value="exists">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether an answer exists is equal to the enableWhen answer (which must be a boolean).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="=">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least one answer has a value that is equal to the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="!=">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least no answer has a value that is equal to the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value=">">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least no answer has a value that is greater than the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="&lt;">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least no answer has a value that is less than the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value=">=">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least no answer has a value that is greater or equal to the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="&lt;=">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">True if whether at least no answer has a value that is less or equal to the enableWhen answer.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="InitialOptionType">
        <xs:choice minOccurs="1" maxOccurs="1">
            <xs:element name="valueBoolean" minOccurs="0" maxOccurs="1" type="ValueBooleanType"/>
            <xs:element name="valueDecimal" minOccurs="0" maxOccurs="1" type="ValueDecimalType"/>
            <xs:element name="valueInteger" minOccurs="0" maxOccurs="1" type="ValueIntegerType"/>
            <xs:element name="valueDate" minOccurs="0" maxOccurs="1" type="ValueDateType"/>
            <xs:element name="valueDateTime" minOccurs="0" maxOccurs="1" type="ValueDateTimeType"/>
            <xs:element name="valueTime" minOccurs="0" maxOccurs="1" type="ValueTimeType"/>
            <xs:element name="valueString" minOccurs="0" maxOccurs="1" type="ValueStringType"/>
            <xs:element name="valueUri" minOccurs="0" maxOccurs="1" type="ValueUriType"/>
            <!--<xs:element name="valueAttachment" minOccurs="0" maxOccurs="1" type="ValueAttachmentType"/>-->
            <xs:element name="valueCoding" minOccurs="0" maxOccurs="1" type="ValueCodingType"/>
            <xs:element name="valueQuantity" minOccurs="0" maxOccurs="1" type="ValueQuantityType"/>
            <!--<xs:element name="valueReference" minOccurs="0" maxOccurs="1" type="ValueReferenceType"/>-->
        </xs:choice>
    </xs:complexType>
    <xs:complexType name="TerminologyServerReference">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Indicates the terminology server(s) that are known to be capable of returning and potentially expanding the value set(s) associated with the whole questionnaire or a particular group or question within the questionnaire (depending on where the extension appears).</xs:documentation>
        </xs:annotation>
        <xs:attribute name="ref" type="Uri" use="required"/>
    </xs:complexType>
    <xs:complexType name="ValueSetReference">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Indicates a value set reference</xs:documentation>
        </xs:annotation>
        <xs:attribute name="ref" type="Oid" use="required"/>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional"/>
        <xs:attribute name="canonicalUri" use="optional"/>
        <xs:attribute name="name" use="required" type="BasicId"/>
        <xs:attribute ref="displayName" use="required"/>
        <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
        <xs:attribute name="strength" type="CodingStrengthType" use="optional"/>
    </xs:complexType>
    <xs:complexType name="IncludeIntensionalValueSet">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Indicates an expandable (intensional) value set with the include instruction elements</xs:documentation>
        </xs:annotation>
        <!--  intensional definition -->
        <xs:attributeGroup ref="IntensionalDefAttributes"/>
    </xs:complexType>
    <xs:complexType name="ItemExtractionContextType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Establishes mapping context for a Questionnaire item</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="expression" minOccurs="0" maxOccurs="1" type="Expression">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Questions and sections within the Questionnaire</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="code" type="EnumerationString" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="ExpressionLanguageType">
        <xs:restriction base="EnumerationString">
            <xs:enumeration value="text/cql">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Clinical Quality Language</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Clinical Quality Language</xforms:label>
                        <xforms:label xml:lang="en-US">Clinical Quality Language</xforms:label>
                        <xforms:label xml:lang="de-DE">Clinical Quality Language</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="text/fhirpath">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">FHIRPath</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">FHIRPath</xforms:label>
                        <xforms:label xml:lang="en-US">FHIRPath</xforms:label>
                        <xforms:label xml:lang="de-DE">FHIRPath</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="text/x-fhir-query">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">FHIR's RESTful query syntax - typically independent of base URL</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">FHIR Query</xforms:label>
                        <xforms:label xml:lang="en-US">FHIR Query</xforms:label>
                        <xforms:label xml:lang="de-DE">FHIR Query</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="text/cql-identifier">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A Clinical Quality Language identifier, typically the name of a top-level definition within a library</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CQL Identifier</xforms:label>
                        <xforms:label xml:lang="en-US">CQL Identifier</xforms:label>
                        <xforms:label xml:lang="de-DE">CQL Identifier</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="text/cql-expression">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A Clinical Quality Language expression</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CQL Expression</xforms:label>
                        <xforms:label xml:lang="en-US">CQL Expression</xforms:label>
                        <xforms:label xml:lang="de-DE">CQL Expression</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="questionnaireresponse">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">QuestionnaireResponse wrapper: wraps FHIR QuestionnaireResponse either as the source or as a reference, and holds enough information to manage it.</xs:documentation>
                <xs:appinfo>
                    <xforms:label xml:lang="nl-NL">QuestionnaireResponse Wrapper</xforms:label>
                    <xforms:label xml:lang="en-US">QuestionnaireResponse Wrapper</xforms:label>
                    <xforms:label xml:lang="de-DE">QuestionnaireResponse Wrapper</xforms:label>
                </xs:appinfo>
            </xs:annotation>
            <xs:sequence>
                <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="classification" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="tag" type="NonEmptyString" minOccurs="0" maxOccurs="unbounded">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">The tag elements could be incorporated to specify any number of tags for search purposes</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="relationship" type="QuestionnaireRelationships" minOccurs="0" maxOccurs="unbounded"/>
                <!-- FHIR object -->
                <xs:any namespace="http://hl7.org/fhir" minOccurs="0" maxOccurs="1" processContents="skip">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">If the FHIR QuestionnaireResponse is contained as the source it goes here</xs:documentation>
                    </xs:annotation>
                </xs:any>
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The identifying OID of the QuestionnaireResponse Wrapper</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="canonicalUri" use="optional"/>
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Not in use yet: Reference to a QuestionnaireResponse Wrapper @id. QuestionnaireResponse SHALL carry either @id or @ref</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="link" type="xs:anyURI" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">If the FHIR QuestionnaireResponse is contained as a reference, this link points to the source</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- attributes of Questionnaire (validation done by embedded schematron) -->
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
            <!--<xs:attribute ref="displayName" use="optional"/>-->
            <!-- if @ref, flexibility -->
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Not in use yet: Reference to a QuestionnaireResponse Wrapper. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- we need a FHIR version indication, ART-DECOR supported versions only, not all published FHIR Versions = complete http://hl7.org/fhir/FHIR-version -->
            <xs:attribute name="fhirVersion" type="FhirObjectFormat" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="CopyrightText">
        <xs:annotation>
            <!--<xs:documentation xml:lang="en-US">Copyright statement or a reference copyright statement. SHALL have contents or ref but not both. If there are contents AND at project level, MAY have id</xs:documentation>-->
            <xs:documentation xml:lang="en-US">Copyright statement or a reference copyright statement.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="FreeFormMarkupWithLanguage">
                <!--<xs:attribute name="id" type="NonEmptyString" use="optional">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Identifies a copyright</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="ref" type="NonEmptyString" use="optional">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">References a project level copyright by its id</xs:documentation>
                    </xs:annotation>
                </xs:attribute>-->
                <xs:attributeGroup ref="CopyrightCompilationAttributes"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="TransactionTrigger">
        <xs:complexContent mixed="true">
            <xs:extension base="FreeFormMarkupWithLanguage">
                <xs:attribute name="id" use="optional" type="xs:NCName"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:simpleType name="TransactionType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Allows specification of the type of a transaction.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationString">
            <xs:enumeration value="group">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Groep</xforms:label>
                        <xforms:label xml:lang="en-US">Group</xforms:label>
                        <xforms:label xml:lang="de-DE">Gruppe</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A transaction of type 'group' groups transactions of other types</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="initial">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Initieel</xforms:label>
                        <xforms:label xml:lang="en-US">Initial</xforms:label>
                        <xforms:label xml:lang="de-DE">Initial</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A transaction of type 'initial' says that this is the transaction that is initially sent, and usually invokes a response. This transaction type requires at least a 'sender' and a 'receiver' actor.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="back">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Terug</xforms:label>
                        <xforms:label xml:lang="en-US">Back</xforms:label>
                        <xforms:label xml:lang="de-DE">Zurück</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A transaction of type 'back' says that this transaction is sent in response to another transaction that preceded this one. Transactions of type 'back' may invoke a new transaction, but this is again of type initial. This transaction type requires at least a 'sender' and a 'receiver' actor.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="stationary">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Registratie</xforms:label>
                        <xforms:label xml:lang="en-US">Stationary</xforms:label>
                        <xforms:label xml:lang="de-DE">Stationär</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A transaction of type 'stationary' says that this transaction does not involve communication, but rather the local registration/administration of data. Transactions of type 'stationary' do not invoke new transaction. This transaction type requires exactly one 'sender' actor.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="actors">
        <xs:complexType>
            <xs:sequence>
                <xs:element minOccurs="0" maxOccurs="unbounded" name="actor" type="ActorDefinition"/>
            </xs:sequence>
        </xs:complexType>
        <xs:unique name="scenarios-actor-unique">
            <xs:selector xpath="actor"/>
            <xs:field xpath="@id"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="ActorsReference">
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="unbounded" name="actor" type="ActorReference"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ActorDefinition">
        <xs:sequence>
            <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="relationship" type="ObjectRelationships" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="Oid" use="required"/>
        <xs:attribute name="type" type="ScenarioActorType" use="required"/>
    </xs:complexType>
    <xs:simpleType name="ScenarioActorType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Actor type for use in scenarios and transactions</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="person">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Persoon</xforms:label>
                        <xforms:label xml:lang="en-US">Person</xforms:label>
                        <xforms:label xml:lang="de-DE">Person</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Person</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="organization">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Organisatie</xforms:label>
                        <xforms:label xml:lang="en-US">Organization</xforms:label>
                        <xforms:label xml:lang="de-DE">Organisation</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Organization</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="device">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Systeem</xforms:label>
                        <xforms:label xml:lang="en-US">Device</xforms:label>
                        <xforms:label xml:lang="de-DE">Gerät</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Device</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ObligationType">
        <xs:annotation>
            <xs:documentation>Modeled after FHIR Obligation extension v5.2.0 https://hl7.org/fhir/extensions/StructureDefinition-obligation.html</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="name" type="BusinessNameWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Maps to FHIR extension(obligation).name (string)</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Maps to FHIR extension(obligation).documentation (markdown)</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="code" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Maps to FHIR extension(obligation).code (code)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="code" type="ObligationCodesType" use="required"/>
                </xs:complexType>
            </xs:element>
            <!-- Not relevant as we are already under the concept this obligation applies to -->
            <!--<xs:element name="element">
                <xs:annotation>
                    <xs:documentation>Maps to FHIR extension(obligation).elementId (string)</xs:documentation>
                </xs:annotation>
            </xs:element>-->
            <xs:element name="actor" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>All actors if none. Reference to ancestor::transaction[1]/actors/actor. Maps to FHIR extension(obligation).actor (canonical(ActorDefinition))</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="ref" type="Oid" use="required"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="usage" type="ValueUsageContextType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>Maps to FHIR extension(obligation).usage (UsageContext)</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!--<xs:element name="filter" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="expression" type="NonEmptyString" use="optional">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">fhirPath expression</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>-->
            <!--<xs:element name="process" type="ValueUriType" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation>canonical(OperationDefinition)</xs:documentation>
                </xs:annotation>
            </xs:element>-->
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="ObligationCodesType">
        <xs:annotation>
            <xs:documentation>https://hl7.org/fhir/extensions/ValueSet-obligation.html</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationString">
            <xs:enumeration value="ResourceProducerObligations">
                <xs:annotation>
                    <xs:documentation>Resource producers are applications that assembles resources in the first place. Resource producers may be a server, client, sender, receiver or some middleware device, and they may store the resource, or merely hand it on.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">ResourceProducerObligations</xforms:label>
                        <xforms:label xml:lang="en-US">ResourceProducerObligations</xforms:label>
                        <xforms:label xml:lang="de-DE">ResourceProducerObligations</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:populate">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHALL include this element if a value is known and allowed to be shared. Notes: This implementation obligation means that whenever the producer knows the correct value for an element, it populates it. This is NOT the same as cardinality, as a 'populate' element can be omitted if no data exists or the data that exists is prohibited from being shared. Organizations might be required to formally document their rules for determining when they are 'able to share' as part of conformance testing processes. (e.g. regulatory, consent, etc.)</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL populate</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL populate</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL populate</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="ihe-r2">
                <xs:annotation>
                    <xs:documentation>R2 as defined in IHE Appendix Z</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">IHE R2</xforms:label>
                        <xforms:label xml:lang="en-US">IHE R2</xforms:label>
                        <xforms:label xml:lang="de-DE">IHE R2</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="std">
                <xs:annotation>
                    <xs:documentation>The standard recommended set of obligations for IGs to use unless they know they want something different. Note that the standard codes don't include use-dar, use-dar-nf, use-dar-if-allowed / use-reason - that gets put on specific elements that justify this handling</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Standard obligations</xforms:label>
                        <xforms:label xml:lang="en-US">Standard obligations</xforms:label>
                        <xforms:label xml:lang="de-DE">Standard obligations</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:populate">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHOULD include this element if a value is known and allowed to be shared. Notes: This implementation obligation means that whenever the producer knows the correct value for an element, it should populate it. This is NOT the same as cardinality, as a 'populate' element can be omitted if no data exists or the data that exists is prohibited from being shared. Organizations might be required to formally document their rules for determining when they are 'able to share' as part of conformance testing processes. (e.g. regulatory, consent, etc.)</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD populate</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD populate</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD populate</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="v2-re">
                <xs:annotation>
                    <xs:documentation>RE as defined in chapter 2 of the v2 specification</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">V2 RE (required but may be empty)</xforms:label>
                        <xforms:label xml:lang="en-US">V2 RE (required but may be empty)</xforms:label>
                        <xforms:label xml:lang="de-DE">V2 RE (required but may be empty)</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:able-to-populate">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHALL be able to correctly populate this element. Notes: Typically, this means that an application needs to demonstrate during some conformance testing process that there are some conditions under which it populates the element with a correct value. (i.e. not a data-absent-reason or equivalent.) This obligation does not impose expectations on the circumstances in which the element will be sent, only that it can be in at least some situations.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL be able to populate</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL be able to populate</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL be able to populate</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:able-to-populate">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHOULD be able to correctly populate this element. Notes: Typically, this means that an application needs to demonstrate during some conformance testing process that there are some conditions under which it populates the element with a correct value. (i.e. not a data-absent-reason or equivalent.) This obligation does not impose expectations on the circumstances in which the element will be sent, only that it shold be in at least some situations.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD be able to populate</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD be able to populate</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD be able to populate</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:able-to-populate">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources MAY be able to correctly populate this element. Notes: Typically, this means that an application needs to demonstrate during some conformance testing process that there are some conditions under which it populates the element with a correct value. (i.e. not a data-absent-reason or equivalent.) This obligation does not impose expectations on the circumstances in which the element will be sent, only that it may be in at least some situations. This is a null statement and is the default behavior for originating systems if other obligations are not specified.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY be able to populate</xforms:label>
                        <xforms:label xml:lang="en-US">MAY be able to populate</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY be able to populate</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:populate-if-known">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHALL correctly populate this element if they know a value for the element, but it is acceptable if the system is unable to ever know a value for the element. Notes: This obligation does not impose a requirement to be able to know a value, unlike populate and able-to-populate which do. 'Knowing' an element means that a value for the element is available in memory, persistent store, or is otherwise available within the system claiming conformance.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL populate if known</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL populate if known</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL populate if known</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:populate-if-known">
                <xs:annotation>
                    <xs:documentation>Conformant applications producing resources SHOULD correctly populate this element if they know a value for the element, but it is acceptable if the system is unable to ever know a value for the element. Notes: This obligation does not impose a requirement to be able to know a value, unlike populate and able-to-populate which do. 'Knowing' an element means that a value for the element is available in memory, persistent store, or is otherwise available within the system claiming conformance.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD populate if known</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD populate if known</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD populate if known</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:in-narrative">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL ensure that this data element is represented in any human readable representation of a resource. Notes: When no value for an element is known, the producer populates the narrative with the content of any nested ElementDefinition.valueAlternatives extensions such as DataAbsentReason. If no particular reason is known or reportable, the element can simply be indicated as 'unknown' in the narrative.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL include in narrative</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL include in narrative</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL include in narrative</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:in-narrative">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD ensure that this data element is represented in any human readable representation of a resource. Notes: When no value for an element is known, the producer populates the narrative with the content of any nested ElementDefinition.valueAlternatives extensions such as DataAbsentReason. If no particular reason is known or reportable, the element can simply be indicated as 'unknown' in the narrative.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD include in narrative</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD include in narrative</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD include in narrative</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:in-narrative">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY ensure that this data element is represented in any human readable representation of a resource. Notes: When no value for an element is known, the producer populates the narrative with the content of any nested ElementDefinition.valueAlternatives extensions such as DataAbsentReason. If no particular reason is known or reportable, the element can simply be indicated as 'unknown' in the narrative.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY include in narrative</xforms:label>
                        <xforms:label xml:lang="en-US">MAY include in narrative</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY include in narrative</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:exclude-narrative">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL ensure that this data element is NOT represented in any human readable representation of a resource. Notes: This may be useful for profiles related to de-identified records</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL exclude from narrative</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL exclude from narrative</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL exclude from narrative</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:exclude-narrative">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD ensure that this data element is NOT represented in any human readable representation of a resource. Notes: This may be useful for profiles related to de-identified records</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD exclude from narrative</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD exclude from narrative</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD exclude from narrative</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:user-input">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL ensure that users can enter a value for this element during data input/capture. Notes: Exactly what form the input takes is not specified, but the expectation is that this is a value that comes from the user, and not implied internally by the application.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL allow user input</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL allow user input</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL allow user input</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:user-input">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD ensure that users can enter a value for this element during data input/capture. Notes: Exactly what form the input takes is not specified, but the expectation is that this is a value that comes from the user, and not implied internally by the application.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD allow user input</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD allow user input</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD allow user input</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:user-input">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY ensure that users can enter a value for this element during data input/capture. Notes: Exactly what form the input takes is not specified, but the expectation is that this is a value that comes from the user, and not implied internally by the application.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY allow user input</xforms:label>
                        <xforms:label xml:lang="en-US">MAY allow user input</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY allow user input</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:explain">
                <xs:annotation>
                    <xs:documentation>Documentation applicable to Conformant applications SHALL explain how this element is handled. Notes: this is really a rule about specifications, implying that another specification (which might be application documentation) either makes this element populate, or explains how the use cases that involve this element do not arise, or how they are handled. An example: IPA marks Patient.active must-handle and must-explain. Client applications must process Patient.active correctly if they see it, but many (though not all) specifications and/or applications ensure that Patient.active will never be false, and so it will never be populated e.g. MedMij in Netherlands prohibits use of Patient.active, and explains that it is never false.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL populate or document irrelevance</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL populate or document irrelevance</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL populate or document irrelevance</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:explain">
                <xs:annotation>
                    <xs:documentation>Documentation applicable to Conformant applications SHOULD explain how this element is handled. Notes: this is really a rule about specifications, implying that another specification (which might be application documentation) either makes this element populate, or explains how the use cases that involve this element do not arise, or how they are handled. An example: IPA marks Patient.active must-handle and must-explain. Client applications must process Patient.active correctly if they see it, but many (though not all) specifications and/or applications ensure that Patient.active will never be false, and so it will never be populated e.g. MedMij in Netherlands prohibits use of Patient.active, and explains that it is never false.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD populate or document irrelevance</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD populate or document irrelevance</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD populate or document irrelevance</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:persist">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL ensure that the value for this element is stored in a persistent data store. Notes: Exactly what the data store is not specified, nor how long it is stored for, but it is understood that the same value will be available in later exchanges</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL persist</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL persist</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL persist</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:persist">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD ensure that the value for this element is stored in a persistent data store. Notes: Exactly what the data store is not specified, nor how long it is stored for, but it is understood that the same value will be available in later exchanges</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD persist</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD persist</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD persist</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:persist">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY ensure that the value for this element is stored in a persistent data store. Notes: Exactly what the data store is not specified, nor how long it is stored for, but it is understood that the same value will be available in later exchanges</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY persist</xforms:label>
                        <xforms:label xml:lang="en-US">MAY persist</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY persist</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:no-alter">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL ensure that this element does not change between receiving and transfer. Notes: This does not mean that the element value cannot change, only that changing the element value for an element marked with this obligation moves an application from being an exchanger to a Consumer and a Producer, and those obligations apply</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL not alter</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL not alter</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL not alter</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:no-alter">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD ensure that this element does not change between receiving and transfer. Notes: This does not mean that the element value cannot change, only that changing the element value for an element marked with this obligation moves an application from being an exchanger to a Consumer and a Producer, and those obligations apply</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD not alter</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD not alter</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD not alter</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:alter">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY choose to alter this element value. Notes: this is really a null-statement - it's the default rule for an application. It's defined here to allow a specification to be explicit that it isn't conveying obligations for resource producers</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY alter</xforms:label>
                        <xforms:label xml:lang="en-US">MAY alter</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY alter</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="ResourceConsumerObligations">
                <xs:annotation>
                    <xs:documentation>Resource Consumers are applications that consume resources and do something with them, either displaying them to humans, transferring them to some other format for further re-use, or using them to drive some kind of application logic process AKA decision support. Resource Consumers often store resources, but do not need to, and whether resources are stored or not between receiving them and using them doesn't make any difference to the obligations</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">ResourceConsumerObligations</xforms:label>
                        <xforms:label xml:lang="en-US">ResourceConsumerObligations</xforms:label>
                        <xforms:label xml:lang="de-DE">ResourceConsumerObligations</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:no-error">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL accept resources containing any valid value for the element without error. Notes: Applications are still able to inform the user that a value cannot be processed correctly and may ignore the data, but applications aren't able to reject an instance merely because the element is present (which would be allowed for elements that do not have this obligation). A system MAY raise an error if the value provided is not valid or violates specific business rules. This obligation also applies to elements that only contain an extension in place of a value where (or equivalent), should either of these be allowed on the consumer obligations</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL not error if present</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL not error if present</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL not error if present</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:no-error">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD accept resources containing any valid value for the element without error. Notes: Applications are still able to inform the user that a value cannot be processed correctly and may ignore the data, but applications aren't able to reject an instance merely because the element is present (which would be allowed for elements that do not have this obligation). A system MAY raise an error if the value provided is not valid or violates specific business rules. This obligation also applies to elements that only contain an extension in place of a value where (or equivalent), should either of these be allowed on the consumer obligations</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD not error if present</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD not error if present</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD not error if present</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:reject-invalid">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL check that values for this element meet all data constraints asserted within the profile declaring this obligation. If validity issues are found, the system SHALL not accept the instance. Notes: This applies to validating the element with the obligation, but not resources referenced by it.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL reject invalid</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL reject invalid</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL reject invalid</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:reject-invalid">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD check that values for this element meet all data constraints asserted within the profile declaring this obligation. If validity issues are found, the system SHOULD not accept the instance. Notes: This applies to validating the element with the obligation, but not resources referenced by it.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD reject invalid</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD reject invalid</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD reject invalid</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:accept-invalid">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL accept data that does not meet all data constraints asserted within the profile declaring this obligation. This applies to non-valid constraints, not to non-valid syntax or failure to meet base resource validity expectations. Typically used when a system needs to be able to handle data that does not adhere to desired expectations (legacy data, test data, data undergoing authorship that is not yet complete, etc.)</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL accept invalid</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL accept invalid</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL accept invalid</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:accept-invalid">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD accept data that does not meet all data constraints asserted within the profile declaring this obligation. This applies to non-valid constraints, not to non-valid syntax or failure to meet base resource validity expectations. Typically used when a system ought to be able to handle data that does not adhere to desired expectations (legacy data, test data, data undergoing authorship that is not yet complete, etc.)</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD accept invalid</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD accept invalid</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD accept invalid</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:display">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL display the value of this element when presenting the data from the resource to a human user. Notes: exactly how it is displayed is not specified, but it means that a human looking at the content of the resource is made aware of the value of the element so that they can consider the meaning of the resource</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL display</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL display</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL display</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:display">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD display the value of this element when presenting the data from the resource to a human user. Notes: exactly how it is displayed is not specified, but it means that a human looking at the content of the resource is made aware of the value of the element so that they can consider the meaning of the resource</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD display</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD display</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD display</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:display">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY display the value of this element when presenting the data from the resource to a human user. Notes: exactly how it is displayed is not specified, but it means that a human looking at the content of the resource is made aware of the value of the element so that they can consider the meaning of the resource</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY display</xforms:label>
                        <xforms:label xml:lang="en-US">MAY display</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY display</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:process">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL consider the value of this element when processing the resource as specified by the IG. Notes: this implies that the IG that specifies this obligation provides details about what processing is to be performed, and the obligation specifially relates to the processing specified in the IG of any ElementDefinition.valueAlternatives extensions as well as the value (or other extensions explicitly declared beneath the element in the profile containing the obligation. Examples might include consideration in decision support, consideration in claims evaluation, etc.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL process</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL process</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL process</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:process">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD consider the value of this element when processing the resource as specified by the IG. Notes: this implies that the IG that specifies this obligation provides details about what processing is to be performed, and the obligation specifially relates to the processing specified in the IG of any ElementDefinition.valueAlternatives extensions as well as the value (or other extensions explicitly declared beneath the element in the profile containing the obligation. Examples might include consideration in decision support, consideration in claims evaluation, etc.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD process</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD process</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD process</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:process">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY consider the value of this element when processing the resource as specified by the IG. Notes: this implies that the IG that specifies this obligation provides details about what processing is to be performed, and the obligation specifially relates to the processing specified in the IG of any ElementDefinition.valueAlternatives extensions as well as the value (or other extensions explicitly declared beneath the element in the profile containing the obligation. Examples might include consideration in decision support, consideration in claims evaluation, etc.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY process</xforms:label>
                        <xforms:label xml:lang="en-US">MAY process</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY process</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:print">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL print the value of this element somewhere. Notes: The form of the printing is not specified. A profile using this value SHALL explain the nature of the printing requirement somehow</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL print</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL print</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL print</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:print">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD print the value of this element somewhere. Notes: The form of the printing is not specified. A profile using this value SHALL explain the nature of the printing requirement somehow</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD print</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD print</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD print</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:print">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY print the value of this element somewhere. Notes: The form of the printing is not specified. A profile using this value SHALL explain the nature of the printing requirement somehow</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY print</xforms:label>
                        <xforms:label xml:lang="en-US">MAY print</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY print</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:handle">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL handle the meaning of this element correctly. Notes: this rule is vague in that doesn't specify any particular handling of the element. But it's important because an application that ignores this element is non-conformant. A good example would be a status code of 'entered-in-error' - how exactly a Resource Consumer handles this depends on the use case etc., but the application can never simply ignore such a status code. Note that whether the resource or information from it is stored for later use is irrelevant - when the resource or information in it is processed, the consequences of the element are considered. That may mean not retaining the information for later use, or informing the user, etc. Typically, this obligation marks that there are known patient safety issues that can arise if the element is ignored. Implementers should pay particular attention to the possible range of values for the element from a safety
                        perspective.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL correctly handle</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL correctly handle</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL correctly handle</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:handle">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD handle the meaning of this element correctly. Notes: this rule is vague in that doesn't specify any particular handling of the element. But it's important because an application that ignores this element is non-conformant. A good example would be a status code of 'entered-in-error' - how exactly a Resource Consumer handles this depends on the use case etc., but the application can never simply ignore such a status code. Note that whether the resource or information from it is stored for later use is irrelevant - when the resource or information in it is processed, the consequences of the element are considered. That may mean not retaining the information for later use, or informing the user, etc. Typically, this obligation marks that there are known patient safety issues that can arise if the element is ignored. Implementers should pay particular attention to the possible range of values for the element from a safety
                        perspective.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD correctly handle</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD correctly handle</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD correctly handle</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHALL:ignore">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHALL not make any use of the value of this element if received.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHALL ignore</xforms:label>
                        <xforms:label xml:lang="en-US">SHALL ignore</xforms:label>
                        <xforms:label xml:lang="de-DE">SHALL ignore</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="SHOULD:ignore">
                <xs:annotation>
                    <xs:documentation>Conformant applications SHOULD not make any use of the value of this element if received.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">SHOULD ignore</xforms:label>
                        <xforms:label xml:lang="en-US">SHOULD ignore</xforms:label>
                        <xforms:label xml:lang="de-DE">SHOULD ignore</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>

            <xs:enumeration value="MAY:ignore">
                <xs:annotation>
                    <xs:documentation>Conformant applications MAY not make any use of the value of this element if received. This is a null statement and is the default behavior or consuming systems if other obligations are not specified.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">MAY ignore</xforms:label>
                        <xforms:label xml:lang="en-US">MAY ignore</xforms:label>
                        <xforms:label xml:lang="de-DE">MAY ignore</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="ActorReference">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Actor reference references an actor that is defined in the main list of actors for all scenarios</xs:documentation>
        </xs:annotation>
        <xs:attribute name="id" use="required" type="Oid"/>
        <xs:attribute name="role" type="ActorType"/>
    </xs:complexType>
    <xs:simpleType name="ActorType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Type of role the actor plays in a transaction</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="sender">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Zender</xforms:label>
                        <xforms:label xml:lang="en-US">Sender</xforms:label>
                        <xforms:label xml:lang="de-DE">Sender</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This actor is the sender of the transaction</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="receiver">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Ontvanger</xforms:label>
                        <xforms:label xml:lang="en-US">Receiver</xforms:label>
                        <xforms:label xml:lang="de-DE">Empfänger</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This actor is the receiver of the transaction</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="stationary">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Registratie</xforms:label>
                        <xforms:label xml:lang="en-US">Stationary</xforms:label>
                        <xforms:label xml:lang="de-DE">Stationär</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This actor is the person or device responsible for persisting the data</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="representingTemplate">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="concept" minOccurs="0" maxOccurs="unbounded" type="ScenarioTemplateConcept"/>
            </xs:sequence>
            <!-- Attributes -->
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a template/@id that sets the structure and rules for the concepts in this representingTemplate.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a template/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="displayName" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Display name for this representingTemplate</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="sourceDataset" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a dataset/@id that holds the concept definitions for the concepts in this representingTemplate.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="sourceDatasetFlexibility" type="StaticFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a dataset/@effectiveDate that holds the concept definitions for the concepts in this representingTemplate.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- Attributes for representingQuestionnaire -->
            <xs:attribute name="representingQuestionnaire" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a questionnaire/@id that reflects the content.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="representingQuestionnaireFlexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a questionnaire/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:unique name="representingTemplate-concepts-unique">
            <xs:selector xpath="./concept"/>
            <xs:field xpath="@ref"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="ScenarioTemplateConcept">
        <xs:sequence>
            <xs:element name="obligation" type="ObligationType" minOccurs="0" maxOccurs="unbounded">
                <xs:unique name="representingTemplate-obligation-actors-unique">
                    <xs:selector xpath="./actor"/>
                    <xs:field xpath="@ref"/>
                </xs:unique>
            </xs:element>
            <xs:element name="context" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Textual information related to the concept in the context of this transaction. This could be used for example to give more guidance around applied association overrides or conditions.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="condition" type="ScenarioTemplateCondition" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="enableWhen" type="EnableWhenConditionType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="terminologyAssociation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="identifierAssociation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="containedTransaction" type="ContainedTransaction" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="ref" type="Oid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a concept/@id that is not in history or in a concept list, and is in the dataset that the representing template refers to.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a concept/@effectiveDate that is not in history or in a concept list, and is in the dataset that the representing template refers to. Note: optional for now, but will be required once the conversion for existing projects is in place. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="absent" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Default is unspecified which in practice comes down to 'false'</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="MultiplicityRangeOptionalUnknown"/>
        <xs:attribute name="conformance" type="ConformanceType"/>
        <xs:attribute name="isMandatory" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Default is unspecified which in practice comes down to 'false'</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="enableBehavior" type="EnableBehaviorType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Controls how multiple enableWhen values are interpreted - whether all or any must be true.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ScenarioTemplateCondition" mixed="true">
        <xs:sequence>
            <!-- minOccurs="0" for backwardcompatibility where there was only a text node -->
            <xs:element name="desc" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attributeGroup ref="MultiplicityRangeOptionalUnknown"/>
        <xs:attribute name="conformance" type="ConformanceType"/>
        <xs:attribute name="isMandatory" type="xs:boolean">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Default is unspecified which in practice comes down to 'false'</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ContainedTransaction">
        <xs:sequence>
            <xs:element name="containedConcept" type="ScenarioTemplateConcept" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="ref" type="Oid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a transaction/@id that used as a pre-defined building block in the concept of the representing template.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticFlexibility" use="optional"/>
    </xs:complexType>
    <xs:element name="ids">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="baseId" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="defaultBaseId" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="id" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="identifierAssociation" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <xs:key name="unique-id-root">
            <xs:selector xpath="id"/>
            <xs:field xpath="@root"/>
        </xs:key>
        <xs:key name="unique-baseId">
            <xs:selector xpath="baseId"/>
            <xs:field xpath="@id"/>
        </xs:key>
        <xs:key name="unique-defaultBaseId">
            <xs:selector xpath="defaultBaseId"/>
            <xs:field xpath="@id"/>
        </xs:key>
    </xs:element>
    <xs:element name="baseId">
        <xs:annotation>
            <xs:documentation xml:lang="nl-NL">baseId stelt een OID branch voor en koppelt een type en weergavenaam aan die branch. Er MOGEN meerdere verschillende baseId's per type zijn. Een OID kan slechts voor één type worden gebruikt. Verdere toelichting op de branch kan door een id met toelichting te creëren.</xs:documentation>
            <xs:documentation xml:lang="en-US">baseId represents an OID branch and associates a type and a display name to that branch. There MAY be multiple different baseId's per type. An OID can only be used for één type. Further explanation for the branch can be added by adding an id with descriptive text.</xs:documentation>
            <xs:documentation xml:lang="de-DE">baseId represents an OID branch and associates a type and a display name to that branch. There MAY be multiple different baseId's per type. An OID can only be used for één type. Further explanation for the branch can be added by adding an id with descriptive text.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:attribute name="id" type="Oid" use="required"/>
            <xs:attribute name="type" type="DecorObjectType" use="required"/>
            <xs:attribute name="prefix" type="ShortDescriptiveName" use="required"/>
            <xs:attribute name="default" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Determines whether or not this baseId is the default for its @type. There SHALL be exactly only one per type with @default='true'</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="defaultBaseId">
        <xs:annotation>
            <xs:documentation xml:lang="nl-NL">defaultBaseId stelt de standaard OID branch voor, voor een bepaalde type. Bij het toekennen van id's aan DECOR objecten wordt deze branch gebruikt als identificatiesysteem. Er MOET exact één defaultBaseId per type zijn. Voor iedere defaultBaseId MOET ook een baseId met hetzelfde type bestaan. Verdere toelichting op de branch kan door een id met toelichting te creëren.</xs:documentation>
            <xs:documentation xml:lang="en-US">defaultBaseId represents the default OID branch for a given type. This branch is used as identifier system in assigning ids to DECOR objects. There SHALL be exactly one defaultBaseId per type. For every defaultBaseId there SHALL also be a baseId with a mtching type. Further explanation for the branch can be added by adding an id with descriptive text.</xs:documentation>
            <xs:documentation xml:lang="de-DE">defaultBaseId represents the default OID branch for a given type. This branch is used as identifier system in assigning ids to DECOR objects. There SHALL be exactly one defaultBaseId per type. For every defaultBaseId there SHALL also be a baseId with a mtching type. Further explanation for the branch can be added by adding an id with descriptive text.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:attribute name="id" type="Oid" use="required"/>
            <xs:attribute name="type" type="DecorObjectType" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="id">
        <xs:annotation>
            <xs:documentation xml:lang="nl-NL">Met id geeft u toelichting op diverse ID's in relatie tot het project. Meestal tenminste een betekenis (designation), maar mogelijk ook alleen een koppeling met een bepaalde eigenschap zoals een FHIR URI.</xs:documentation>
            <xs:documentation xml:lang="en-US">With id you give more information about ID related to the project. Usually at least a designation, but potentially also just an association with a property such as a FHIR URI</xs:documentation>
            <xs:documentation xml:lang="de-DE">With id you give more information about ID related to the project. Usually at least a designation, but potentially also just an association with a property such as a FHIR URI</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="designation" minOccurs="1" maxOccurs="unbounded"/>
                <xs:element name="property" type="ArbitraryPropertyType" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="nl-NL">Id eigenschappen bijvoorbeeld voor het verbinden van dit id met andere typen identificatie (bijv. HL7 FHIR Systeem URI) voor hetzelfde object (codesysteem, OID-tak, identificatiesysteem). Als u van plan bent een HL7 FHIR System URI te verbinden die de voorkeur heeft boven de OID, gebruikt u dan @name='HL7-FHIR-System-URI-Preferred'. Als er wel een HL7 FHIR System URI bestaat maar deze niet de voorkeur heeft boven de OID, gebruikt u dan 'HL7-FHIR-System-URI'. Op deze manier herkent ART-DECOR deze indien van toepassing.</xs:documentation>
                        <xs:documentation xml:lang="en-US">Id properties for example to connect this id to other types of identifiers (e.g. HL7 FHIR System URI) for the same object (code system, OID branch, identification system) If you intend to connect an HL7 FHIR System URI that is preferred over the OID, please use @name='HL7-FHIR-System-URI-Preferred'. When you connect an HL7 FHIR System URI that exists but is not preferred over the OID, please use 'HL7-FHIR-System-URI'. This way ART-DECOR can pick it up if appropriate.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="root" use="required" type="Oid"/>
            <xs:attribute name="extension" type="NonEmptyString"/>
            <xs:attribute name="assigningAuthority" type="LongDescriptiveName"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="identifierAssociation">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">identifierAssociation links a dataset concept to an identifier scheme. Any concept may have multiple of these associations</xs:documentation>
            </xs:annotation>
            <!--<xs:attribute name="id" use="required" type="Oid">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">each assignment MUST have a project unique id so you can attach issues, change with precision, and potentially delete</xs:documentation>
                </xs:annotation>
            </xs:attribute>-->
            <xs:attribute name="conceptId" use="required" type="Oid">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">concept id this assocication is associated with</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="conceptFlexibility" use="optional" type="StaticFlexibility">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">concept effectiveDate this assocication is associated with</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Object Identifier (OID) of the identification scheme this assocication is associated with. Example: '2.16.840.1.113883.4.1' for US Social Security Numbers</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- version handling -->
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <!-- removed after talks with users: not relevant for now and a can of worms should want it -->
            <!--<xs:attribute name="statusCode" type="ReleaseStatusCodeLifeCycle" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">manages the status of the association itself</xs:documentation>
                </xs:annotation>
            </xs:attribute>-->

            <xs:attributeGroup ref="IdentifierAssociationCompilationAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="issues">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="labels" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="issue" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="notifier" type="NotifierOnOff" use="optional" default="on">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Specifies whether the automatic notifier system (if activated) should notify all authors of the project about changes of any project issue. Default is "on"</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
        <xs:unique name="issue-id-unique">
            <xs:selector xpath="issue"/>
            <xs:field xpath="@id"/>
        </xs:unique>
    </xs:element>
    <xs:simpleType name="NotifierOnOff">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Automatic notifier system (if activated) notifies all authors of the project about changes of any project issue on/off</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="on">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Notificaties aan</xforms:label>
                        <xforms:label xml:lang="en-US">Notifier on</xforms:label>
                        <xforms:label xml:lang="de-DE">Notifier on</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Notifier on</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="off">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Notificaties uit</xforms:label>
                        <xforms:label xml:lang="en-US">Notifier off</xforms:label>
                        <xforms:label xml:lang="de-DE">Notifier off</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Notifier off</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="labels">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Contains definition of labels specific to this DECOR instance. A DECOR instance does require labeling of issues. However once a label is used you SHOULD NOT alter/remove the label.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="label" minOccurs="1" maxOccurs="unbounded" type="IssueLabelDefinition"/>
            </xs:sequence>
        </xs:complexType>
        <xs:unique name="issuelabels-labelcode-unique">
            <xs:selector xpath="label"/>
            <xs:field xpath="@code"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="IssueLabelDefinition">
        <xs:sequence>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Describes what the label is meant to represent/do</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="color" type="HTMLColorName" use="optional" default="white">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Contains an HTML compatible reference to a color. Examples for the color red: red, #ff0000, rgb(255,0,0)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="code" type="EnumerationString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Contains a code that may be used to refer to this label.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="ShortDescriptiveName" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Contains a descriptive name for this label.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="issue">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="object" minOccurs="0" maxOccurs="unbounded" type="IssueObject"/>
                <xs:choice minOccurs="1" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The list of historic events in terms of comments tracking and assignments</xs:documentation>
                    </xs:annotation>
                    <xs:element name="tracking" minOccurs="1" maxOccurs="unbounded" type="IssueTracking"/>
                    <xs:element name="assignment" minOccurs="0" maxOccurs="unbounded" type="IssueAssignment"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The unique id of this issue</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="type" type="IssueType" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The type of this issue</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="priority" type="IssuePriority" use="optional" default="N">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The priority level of this issue, defaults to normal</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="displayName" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A short text to describe the issue (headline)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="IssueType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Kind of issue</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="INC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Storing</xforms:label>
                        <xforms:label xml:lang="en-US">Incident</xforms:label>
                        <xforms:label xml:lang="de-DE">Störung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Incident</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RFC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Wijzigingsverzoek</xforms:label>
                        <xforms:label xml:lang="en-US">Change Request</xforms:label>
                        <xforms:label xml:lang="de-DE">Änderungswunsch</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Change Request</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FUT">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Voor de toekomst</xforms:label>
                        <xforms:label xml:lang="en-US">For future consideration</xforms:label>
                        <xforms:label xml:lang="de-DE">Zur zukünftigen Berücksichtigung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">For future consideration</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CLF">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Verduidelijking/toelichting noodzakelijk</xforms:label>
                        <xforms:label xml:lang="en-US">Request for Information/Education</xforms:label>
                        <xforms:label xml:lang="de-DE">Bitte um Information/Aufklärung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Request for Information/Education</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IssuePriority">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Priority of issue</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="HH">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Hoogste</xforms:label>
                        <xforms:label xml:lang="en-US">Highest</xforms:label>
                        <xforms:label xml:lang="de-DE">Höchste</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Highest</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="H">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Hoog</xforms:label>
                        <xforms:label xml:lang="en-US">High</xforms:label>
                        <xforms:label xml:lang="de-DE">Hoch</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">High</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="N">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Normaal</xforms:label>
                        <xforms:label xml:lang="en-US">Normal</xforms:label>
                        <xforms:label xml:lang="de-DE">Normal</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Normal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="L">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Laag</xforms:label>
                        <xforms:label xml:lang="en-US">Low</xforms:label>
                        <xforms:label xml:lang="de-DE">Niedrig</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Low</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Laagst</xforms:label>
                        <xforms:label xml:lang="en-US">Lowest</xforms:label>
                        <xforms:label xml:lang="de-DE">Niedrigste</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Lowest</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="IssueObject">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The object(s) that are subject to the issue</xs:documentation>
        </xs:annotation>
        <xs:attribute name="id" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The id of the object that is subject to the issue; either id or name of the object should be given</xs:documentation>
            </xs:annotation>
            <xs:simpleType>
                <xs:union memberTypes="Oid Uuid"/>
            </xs:simpleType>
        </xs:attribute>
        <xs:attribute name="name" type="ShortDescriptiveName" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The name of the object that is subject to the issue; either name or id of the object should be given</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="IssueObjectType" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The type of the object that is subject to the issue</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The optional effectiveDate of the object that is subject to the issue</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:simpleType name="IssueObjectType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The type of the object that is subject to an issue</xs:documentation>
        </xs:annotation>
        <xs:restriction base="DecorObjectType">
            <xs:enumeration value="DS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Dataset</xforms:label>
                        <xforms:label xml:lang="en-US">Dataset</xforms:label>
                        <xforms:label xml:lang="de-DE">Datensatz</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a dataset</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een dataset</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Datensatz</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DE">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Datasetconcept</xforms:label>
                        <xforms:label xml:lang="en-US">Data Element</xforms:label>
                        <xforms:label xml:lang="de-DE">Datenelement</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a data element</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een data element</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Datenelement</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- KH 20140606: no longer supported 
            <xs:enumeration value="EL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template-element</xforms:label>
                        <xforms:label xml:lang="en-US">Template Element</xforms:label>
                        <xforms:label xml:lang="de-DE">Template-Element</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is an template element</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een template element</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Template-Element</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            -->
            <xs:enumeration value="SC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Scenario</xforms:label>
                        <xforms:label xml:lang="en-US">Scenario</xforms:label>
                        <xforms:label xml:lang="de-DE">Szenario</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a scenario</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een scenario</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Szenario</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Transactie</xforms:label>
                        <xforms:label xml:lang="en-US">Transaction</xforms:label>
                        <xforms:label xml:lang="de-DE">Transaktion</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a transaction</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een transactie</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist eine Transaktion</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- 2021-11-19 KH Added -->
            <xs:enumeration value="QQ">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Questionnaire</xforms:label>
                        <xforms:label xml:lang="en-US">Questionnaire</xforms:label>
                        <xforms:label xml:lang="de-DE">Questionnaire</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR Questionnaire</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR Questionnaire</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR Questionnaire</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">QuestionnaireResponse</xforms:label>
                        <xforms:label xml:lang="en-US">QuestionnaireResponse</xforms:label>
                        <xforms:label xml:lang="de-DE">QuestionnaireResponse</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR QuestionnaireResponse</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR QuestionnaireResponse</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR QuestionnaireResponse</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QE">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Questionnaire (enriched)</xforms:label>
                        <xforms:label xml:lang="en-US">Questionnaire (enriched)</xforms:label>
                        <xforms:label xml:lang="de-DE">Questionnaire (enriched)</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR Questionnaire (enriched)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Waardelijst</xforms:label>
                        <xforms:label xml:lang="en-US">Value Set</xforms:label>
                        <xforms:label xml:lang="de-DE">Value Set</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a value set</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een value set</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Value Set</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- 2014-07-16 AH Added -->
            <xs:enumeration value="CS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Code system</xforms:label>
                        <xforms:label xml:lang="nl-NL">Codesysteem</xforms:label>
                        <xforms:label xml:lang="de-DE">Codesystem</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Code system</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Codesysteem</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Codesystem</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- 2018-03-10 KH Added -->
            <xs:enumeration value="MP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Concept Map</xforms:label>
                        <xforms:label xml:lang="en-US">Concept Map</xforms:label>
                        <xforms:label xml:lang="de-DE">Concept Map</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Concept Map</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Concept Map</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Concept Map</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template</xforms:label>
                        <xforms:label xml:lang="en-US">Template</xforms:label>
                        <xforms:label xml:lang="de-DE">Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with issues is a template</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met de issues is een template</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt mit dem Problem ist ein Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- 2021-11-19 KH Added -->
            <xs:enumeration value="SD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">StructureDefinition</xforms:label>
                        <xforms:label xml:lang="en-US">StructureDefinition</xforms:label>
                        <xforms:label xml:lang="de-DE">StructureDefinition</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR StructureDefinition</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">HL7 FHIR StructureDefinition</xs:documentation>
                    <xs:documentation xml:lang="de-DE">HL7 FHIR StructureDefinition</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- 2022-08-01 KH Added -->
            <xs:enumeration value="IG">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Implementation Guide</xforms:label>
                        <xforms:label xml:lang="nl-NL">Implementation Guide</xforms:label>
                        <xforms:label xml:lang="de-DE">Implementation Guide</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Implementation Guide (ART-DECOR)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Implementation Guide (ART-DECOR)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Implementation Guide (ART-DECOR)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Issue</xforms:label>
                        <xforms:label xml:lang="en-US">Issue</xforms:label>
                        <xforms:label xml:lang="de-DE">Issue</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Object with reference to another issue</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Object met een relatie naar een ander issue</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Objekt relatiert mit ein Issue</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="IssueTracking">
        <xs:sequence>
            <xs:element name="author" type="AuthorType" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The author of this tracking. Every update to a tracking adds a new author marked with an effectiveDate.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" minOccurs="1" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">What is the description or question associated with this tracking</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies the effective date and time of the tracking.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="statusCode" type="IssueStatusCodeLifeCycle" use="required"/>
        <xs:attribute name="labels" type="set_ShortString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">References one or multiple label codes as defined in issues/labels</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="IssueAssignment" mixed="true">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The assignment of an issue to a person or group</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="author" type="AuthorType" minOccurs="1" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The author of this assignment. Every update to an assignment adds a new author marked with an effectiveDate.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">What is the description or question associated with this assignment</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="to" type="xs:positiveInteger" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifier of the person or group where this issue has been assigned to</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="ShortDescriptiveName" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Name / label of the person or group where this issue has been assigned to</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies the effective date and time of the assignment of the issue.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="labels" type="set_ShortString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">References one or multiple label codes as defined in issues/labels</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:element name="templateId">
        <xs:complexType>
            <xs:attribute name="root" type="Oid"/>
            <xs:attribute name="extension" type="NonEmptyString"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="NullFlavorPattern">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Null Flavor</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="nullFlavor">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">NullFlavor</xforms:label>
                        <xforms:label xml:lang="nl-NL">NullFlavor</xforms:label>
                        <xforms:label xml:lang="de-DE">NullFlavor</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Null Flavor</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="VocabType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Vocab Type</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="L">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Leaf</xforms:label>
                        <xforms:label xml:lang="nl-NL">Leaf</xforms:label>
                        <xforms:label xml:lang="de-DE">Leaf</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">L Leaf; a term that has no children in the specialization hierarchy, and is selectable, and therefore deemed to be a leaf.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="A">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Abstract</xforms:label>
                        <xforms:label xml:lang="nl-NL">Abstract</xforms:label>
                        <xforms:label xml:lang="de-DE">Abstract</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">A Abstract; a term that has children in the specialization hierarchy, but is not, itself, selectable and therefore deemed abstract.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="S">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Specializable</xforms:label>
                        <xforms:label xml:lang="nl-NL">Specializable</xforms:label>
                        <xforms:label xml:lang="de-DE">Specializable</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">S Specializable; a term that has children in the specialization hierarchy, and is also selectable and therefore deemed specializable.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="D">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Deprecated</xforms:label>
                        <xforms:label xml:lang="nl-NL">Deprecated</xforms:label>
                        <xforms:label xml:lang="de-DE">Deprecated</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">D Deprecated; a term that should not be used any longer</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ConformanceType">
        <xs:annotation>
            <xs:appinfo>
                <xforms:label xml:lang="nl-NL">Conformancetype</xforms:label>
                <xforms:label xml:lang="en-US">Conformance Type</xforms:label>
                <xforms:label xml:lang="de-DE">Conformance Typ</xforms:label>
            </xs:appinfo>
            <xs:documentation xml:lang="en-US">Conformance Type</xs:documentation>
        </xs:annotation>
        <xs:restriction base="EnumerationToken">
            <xs:enumeration value="R">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Required</xforms:label>
                        <xforms:label xml:lang="en-US">Required</xforms:label>
                        <xforms:label xml:lang="de-DE">Required</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">R required. Implies max != 0, usually implies min > 0. If min > 0 then 'required' is implied unless 'mandatory' is stated.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="C">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Conditioneel</xforms:label>
                        <xforms:label xml:lang="en-US">Conditional</xforms:label>
                        <xforms:label xml:lang="de-DE">Conditional</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">C conditional. Implies max != 0. Conditions SHALL be stated.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Niet toegestaan</xforms:label>
                        <xforms:label xml:lang="en-US">Not permitted</xforms:label>
                        <xforms:label xml:lang="de-DE">Nicht erlaubt</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">NP not permitted. Implies min = 0 and max = 0.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!--<xs:enumeration value="O">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Optioneel</xforms:label>
                        <xforms:label xml:lang="en-US">Optional</xforms:label>
                        <xforms:label xml:lang="de-DE">Optional</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">O optional. Implies min = 0 and max != 0. Optional is not a real conformance value but rather the default if not specified or implied otherwise</xs:documentation>
                </xs:annotation>
            </xs:enumeration>-->
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="OidOrNullFlavor">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Allows both OIDs for codesystems or special 'nullFlavor'</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="Oid NullFlavorPattern"/>
    </xs:simpleType>
    <xs:element name="terminology">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="terminologyAssociation" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="codeSystem" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="valueSet" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="conceptMap" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
        <!-- Cannot have two valueSets carrying the same id and effectiveDate -->
        <xs:unique name="valueset-idversion-unique">
            <xs:selector xpath="valueSet"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <xs:unique name="valueset-ref-unique">
            <xs:selector xpath="valueSet"/>
            <xs:field xpath="@ref"/>
        </xs:unique>
        <!-- Cannot have two codeSystems carrying the same id and effectiveDate -->
        <xs:unique name="codesystem-idversion-unique">
            <xs:selector xpath="codeSystem"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <xs:unique name="codesystem-ref-unique">
            <xs:selector xpath="codeSystem"/>
            <xs:field xpath="@ref"/>
        </xs:unique>
        <!-- Cannot have two conceptMaps carrying the same id and effectiveDate -->
        <xs:unique name="conceptmap-idversion-unique">
            <xs:selector xpath="conceptMap"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <xs:unique name="conceptmap-ref-unique">
            <xs:selector xpath="conceptMap"/>
            <xs:field xpath="@ref"/>
        </xs:unique>
    </xs:element>
    <xs:element name="terminologyAssociation">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">terminologyAssociation links a concept to a code or a concept list to a value set</xs:documentation>
            </xs:annotation>
            <!--<xs:attribute name="id" use="optional" type="Oid">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">each assignment SHOULD have a project unique id so you can attach issues, manage the status machine, change with precision, and potentially delete</xs:documentation>
                </xs:annotation>
            </xs:attribute>-->

            <!-- optional designation -->
            <xs:sequence>
                <xs:element ref="designation" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>

            <!-- concept id where this assocication is associated with -->
            <xs:attribute name="conceptId" use="required" type="Oid"/>
            <xs:attribute name="conceptFlexibility" use="optional" type="StaticFlexibility">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Refers to the concept/@effectiveDate if conceptId points to a real concept and not to conceptList or a concept under a conceptList.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- a coded concept -->
            <xs:attribute name="code" use="optional" type="EnumerationString"/>
            <xs:attribute name="codeSystem" use="optional" type="Oid"/>
            <!-- human readable things for codes -->
            <xs:attribute name="codeSystemName" use="optional" type="NonEmptyString"/>
            <xs:attribute ref="displayName" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A displayname for the code, only for human readablility here</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- a value set and flexibility -->
            <xs:attribute name="valueSet" type="BasicIdOrOid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@id or @name. References to @name are discouraged because they become ambiguous quickly.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- coding strength -->
            <xs:attribute name="strength" type="CodingStrengthType" default="required" use="optional"/>

            <!-- version handling -->
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <!-- removed after talks with users: not relevant for now and a can of worms should want it -->
            <!--<xs:attribute name="statusCode" type="ReleaseStatusCodeLifeCycle" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">manages the status of the association itself</xs:documentation>
                </xs:annotation>
            </xs:attribute>-->

            <xs:attribute name="equivalence" type="EquivalencyType" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Rating of mapping between the concept to the associated code or a concept list to an associated value set</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="TerminologyAssociationCompilationAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="conceptMap">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Concept association documents for mapping between coded concepts in two value sets (or between concepts in two datasets)</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Concept Map for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Concept Map for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A statement about the purpose of the Concept Map</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the Concept Map and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="jurisdiction" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Intended jurisdiction for questionnaire (if applicable)</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="property" type="CodedConceptPropertyDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Additional information supplied about each concept map</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="sourceScope" minOccurs="1" maxOccurs="1" type="SourceOrTargetValueSet"/>
                <xs:element name="targetScope" minOccurs="1" maxOccurs="1" type="SourceOrTargetValueSet"/>
                <xs:element name="group" minOccurs="0" maxOccurs="unbounded" type="ConceptMapGroupDefinition"/>
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Defines the globally unique identifier for this concept map.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="displayName" use="required"/>
            <xs:attributeGroup ref="VersionHandling"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
            <xs:attribute ref="canonicalUri" use="optional"/>
        </xs:complexType>
        <xs:unique name="conceptMap-desc-language-unique">
            <xs:selector xpath="desc"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="conceptMap-purpose-language-unique">
            <xs:selector xpath="purpose"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="conceptMap-copyright-language-unique">
            <xs:selector xpath="copyright"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <!--<xs:unique name="conceptMap-property-code-unique">
            <xs:selector xpath="property"/>
            <xs:field xpath="@code"/>
        </xs:unique>-->
    </xs:element>
    <xs:complexType name="SourceOrTargetValueSet">
        <xs:attribute name="ref" type="Uri" use="required"/>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a valueSet/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="displayName" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A displayname for the object, only for human readablility here</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="canonicalUri" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ConceptMapGroupDefinition">
        <xs:sequence>
            <xs:element name="source" minOccurs="1" maxOccurs="1" type="SourceOrTargetCodeSystem"/>
            <xs:element name="target" minOccurs="0" maxOccurs="1" type="SourceOrTargetCodeSystem"/>
            <xs:element name="element" minOccurs="0" maxOccurs="unbounded" type="ConceptMapElement"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="SourceOrTargetCodeSystem">
        <xs:attribute name="codeSystem" type="Uri" use="required"/>
        <xs:attribute name="codeSystemVersion" type="NonEmptyString" use="optional"/>
        <xs:attribute ref="displayName" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A displayname for the object, only for human readablility here</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="canonicalUri" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ConceptMapElement">
        <xs:sequence>
            <xs:element name="target" minOccurs="1" maxOccurs="unbounded" type="ConceptMapTarget"/>
        </xs:sequence>
        <xs:attribute name="code" type="EnumerationString" use="required"/>
        <xs:attribute ref="displayName" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ConceptMapTarget">
        <xs:sequence>
            <xs:element name="comment" type="FreeFormMarkupWithLanguage" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="property" type="CodedConceptProperty" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="code" type="EnumerationString" use="optional"/>
        <xs:attribute ref="displayName" use="optional"/>
        <xs:attribute name="relationship" use="required" type="ConceptMapRelationshipType"/>
    </xs:complexType>
    <xs:element name="valueSet">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Value Set. A DECOR valueSet can take different forms. It may be a simple value set reference (@ref) to a value set from a repository without any contents, id, effectiveDate or statusCode, but with a name and a displayName. The other option is a valueSet with contents, id, effectiveDate, statusCode, name and displayName.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
                <!-- Only relevant after compilation -->
                <xs:group ref="ValueSetCompilationSourceCodeSystem"/>
                <xs:element name="relationship" type="ValueSetRelationships" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Value Set relationship to another Value Set</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- there may be one publishing and one or more endorsing authorities. not used by DECOR yet, but is populated by the ValueSet API upon retrieval based on the first project/copyright -->
                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Value set for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Value set for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- FHIR Value Set DSTUr1 0.8 compatibility -->
                <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A statement about the purpose of the value set</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the template and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!--  there may be 0..* value set revision history discriptions. not used by DECOR yet -->
                <xs:element name="revisionHistory" type="ObjectHistory" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The free text description describing the changes in this version of the Value set as compared to the previous version. Since Value set versions are built off of previous versions, the net effect of this field is to function as a comprehensive historical reference of the Value set.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="completeCodeSystem" type="CodeSystemReference" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Deprecated. Will be replaced by include with @codeSystem</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="conceptList" type="ValueSetConceptList" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
            <xs:attribute name="id" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Defines the globally unique identifier for this value set and may be used to reference it. Value sets SHOULD carry either @id or @ref</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="canonicalUri" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Defines the canonical uri for this value set and may be used to reference it.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@id. Value sets SHALL carry either @id or @ref</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="name" use="required" type="BasicId"/>
            <xs:attribute ref="displayName" use="required"/>
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
            <xs:attribute ref="experimental" use="optional"/>

            <!-- if @ref, flexibility -->
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="ValueSetCompilationAttributes"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="CodeSystemReference">
        <xs:attribute name="codeSystem" type="Oid" use="required"/>
        <xs:attribute name="codeSystemName" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Display name for the code system as it is known in your context. This may or may not be the official name for the code system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="codeSystemVersion" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Version string for the code system. This is only relevant for code systems with incompatible versions. If specified, than your instances will need to carry this information exactly as-is.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a codeSystem/@codeSystemVersion. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" fixed="D" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Signals deprecation of the codeSystem in the context of this value set definition. This does not imply any status change in the code system itself.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ValueSetConceptList">
        <xs:sequence>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="concept" type="ValueSetConcept"/>
                <xs:element name="include" type="ValueSetRefOrIntensionalOp"/>
                <xs:element name="exclude" type="ValueSetRefOrIntensionalOp"/>
            </xs:choice>
            <xs:element name="exception" type="ValueSetConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="valueSetExpansionSet">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Value Set Expansion Set. A DECOR valueSet can be intensional and the expansion set can be stored using the construct defined here. A Value Set Expansion Set is stored outside the DECOR file.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="valueSet" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Copy of the original (intensional) Value Set where this Expansion is derived from</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="expansion" type="ValueSetExpansion" minOccurs="1" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Value set expansion as a list of concepts</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="Uuid" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">ID of the Value Set Expansion Set (a UUID)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="effectiveDate" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Time stamp when the Expansion was created</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="expirationDate" type="TimeStampNoTimezone" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Date the Value Set Expansion Set is no longer considered to be used.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="statusCode" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The status code of the Value Set Expansion Set. Status final at creation, or deprecated at expiration</xs:documentation>
                </xs:annotation>
                <xs:simpleType>
                    <xs:restriction base="ItemStatusCodeLifeCycle">
                        <xs:enumeration value="final"/>
                        <xs:enumeration value="deprecated"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="ValueSetExpansion">
        <xs:sequence>
            <xs:element name="concept" type="ValueSetConcept" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="exception" type="ValueSetConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="total" type="xs:integer" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Total number of codes in the expansion</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="timestamp" type="xs:dateTime" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Time ValueSet expansion happened</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="ValueSetConcept">
        <xs:sequence>
            <xs:element ref="designation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">You may add a description for convenience, but should note that most of the time the description here overlaps with the designation/description of the coded concept</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="code" type="EnumerationString" use="required"/>
        <xs:attribute name="codeSystem" type="Oid" use="required"/>
        <xs:attribute name="codeSystemName" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Display name for the code system as it is known in your context. This may or may not be the official name for the code system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="codeSystemVersion" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Version string for the code system. This is only relevant for code systems with incompatible versions. If specified, than your instances will need to carry this information exactly as-is.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="displayName" use="required"/>
        <xs:attribute ref="ordinal" use="optional"/>
        <xs:attribute name="level" type="xs:integer" use="required"/>
        <xs:attribute name="type" type="VocabType" use="required"/>
    </xs:complexType>
    <xs:complexType name="ValueSetRefOrIntensionalOp">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Either a value set ref or an operator op with code, codeSystem and displayName. Include is of another valueSet, typically from a repository, but potentially within the same DECOR definition.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="designation" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">You may add a description for convenience, but should note that most of the time the description here overlaps with the description of the referenced value set / intensional definition</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="filter" type="PropertyFilter" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="type" fixed="D" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Signals deprecation of the codeSystem in the context of this value set definition. This does not imply any status change in the code system itself.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- value set ref -->
        <xs:attributeGroup ref="ValueSetRefAttributes"/>
        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="ValueSetCompilationAttributes"/>
        <!--  intensional definition -->
        <xs:attributeGroup ref="IntensionalDefAttributes"/>
    </xs:complexType>
    <xs:attributeGroup name="ValueSetRefAttributes">
        <xs:attribute name="ref" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a valueSet/@id.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a valueSet/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="exception" use="optional" type="xs:boolean" default="false">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Indicates whether the valueSet contents should be treated as exceptions. Default is 'false' meaning that the contents are included as concepts.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="IntensionalDefAttributes">
        <xs:attribute name="op" type="IntensionalOperators" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Intensional Definition</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="code" type="EnumerationString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An identifier that uniquely names the class or "concept" within the context of the defining Code System</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="codeSystem" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An identifier that uniquely names the Code System</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="codeSystemName" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Display name for the code system as it is known in your context. This may or may not be the official name for the code system.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="codeSystemVersion" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Version string for the code system. This is only relevant for code systems with incompatible versions. If specified, than your instances will need to carry this information exactly as-is.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="displayName" use="optional"/>
    </xs:attributeGroup>
    <xs:simpleType name="IntensionalOperators">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="is-a">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">is-a</xforms:label>
                        <xforms:label xml:lang="nl-NL">is-a</xforms:label>
                        <xforms:label xml:lang="de-DE">is-a</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">is-a or &lt;&lt; :: includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (i.e. include child codes)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">is-a of &lt;&lt; :: bevat alle concepten met een transitieve is-a relatie met het concept, inclusief het concept zelf (dus bevat onderliggende concepten)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">is-a oder &lt; &lt; :: enthält alle Konzept-IDs, die eine transitive is-a-Beziehung zu der als Wert bereitgestellten Konzept-ID haben, einschließlich des bereitgestellten Konzepts selbst (d.h. untergeordnete Codes einschließen).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="descendent-of">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">descendant-of</xforms:label>
                        <xforms:label xml:lang="nl-NL">descendant-of</xforms:label>
                        <xforms:label xml:lang="de-DE">descendant-of</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">descendant-of or &lt; :: includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself (i.e. include child codes)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">descendant-of of &lt; :: bevat alle concepten met een transitieve is-a relatie met het concept, exclusief het concept zelf (dus bevat onderliggende concepten)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">descendant-of oder &lt; :: enthält alle Konzept-IDs, die eine transitive is-a-Beziehung zu der als Wert bereitgestellten Konzept-ID haben, mit Ausnahme des bereitgestellten Konzepts selbst (d. h. untergeordnete Codes einschließen).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="descendent-leaf">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">descendent-leaf</xforms:label>
                        <xforms:label xml:lang="nl-NL">descendent-leaf</xforms:label>
                        <xforms:label xml:lang="de-DE">descendant-of</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">descendent-leaf :: includes concept ids that have a transitive is-a relationship with the concept Id provided as the value, but which do not have any concept ids with transitive is-a relationships with themselves</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">descendent-leaf :: bevat alle concepten met een transitieve is-a relatie met het concept, exclusief concepten die zelf onderliggende concepten hebben)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">descendent-leaf :: enthält alle Konzept-IDs, die eine transitive is-a-Beziehung zu der als Wert bereitgestellten Konzept-ID haben, mit Ausnahme des bereitgestellten Konzepts selbst (d. h. untergeordnete Codes einschließen).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="child-of">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">child-of</xforms:label>
                        <xforms:label xml:lang="nl-NL">child-of</xforms:label>
                        <xforms:label xml:lang="de-DE">child-of</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">child-of :: only concepts with a direct hierarchical relationship to the index code and no other concepts. This does not include the index code in the output</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">child-of :: alleen concepten die een directe hierarchische relatie met het concept zonder het concept zelf</xs:documentation>
                    <xs:documentation xml:lang="de-DE">child-of :: enthält alle Konzept-IDs, die eine transitive is-a-Beziehung zu der als Wert bereitgestellten Konzept-ID haben, mit Ausnahme des bereitgestellten Konzepts selbst (d. h. untergeordnete Codes einschließen).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="is-not-a">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">is-not-a</xforms:label>
                        <xforms:label xml:lang="nl-NL">is-not-a</xforms:label>
                        <xforms:label xml:lang="de-DE">is-not-a</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">is-not-a :: the specified property of the code does not have an is-a relationship with the provided value</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">is-not-a :: concepten die geen is-a relatie met het betreffende concept hebben</xs:documentation>
                    <xs:documentation xml:lang="de-DE">is-not-a :: enthält alle Konzept-IDs, die keine transitive is-a-Beziehung zu der als Wert bereitgestellten Konzept-ID haben</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="regex">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">regex</xforms:label>
                        <xforms:label xml:lang="nl-NL">regex</xforms:label>
                        <xforms:label xml:lang="de-DE">regex</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">regex :: the specified property of the code matches the regex specified in the provided value</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">regex :: concept-codes die voldoen aan het gespecificeerde reguliere-expressie-patroon</xs:documentation>
                    <xs:documentation xml:lang="de-DE">regex :: Die angegebene Eigenschaft des Codes stimmt mit dem im angegebenen Wert angegebenen regulären Ausdruck überein</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="in">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">in</xforms:label>
                        <xforms:label xml:lang="nl-NL">in</xforms:label>
                        <xforms:label xml:lang="de-DE">in</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">in :: the selection of a set of concepts based on their membership of a (SNOMED CT) reference set</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">in :: de selectie van een set concepten gebaseerd op hun lidmaatschap van een (SNOMED CT) referentieset</xs:documentation>
                    <xs:documentation xml:lang="de-DE">in :: die Auswahl einer Reihe von Konzepten basierend auf ihrer Zugehörigkeit zu einer (SNOMED CT) Referenzmenge</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="equal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">equal</xforms:label>
                        <xforms:label xml:lang="nl-NL">equal</xforms:label>
                        <xforms:label xml:lang="de-DE">equal</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">equal :: the specified property of the code is equal to the provided value</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">equal :: de opgegeven property van de code is gelijk aan de opgegeven waarde</xs:documentation>
                    <xs:documentation xml:lang="de-DE">equal :: die angegebene Property des Codes ist gleich dem angegeben Wert</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="exist">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">exist</xforms:label>
                        <xforms:label xml:lang="nl-NL">exist</xforms:label>
                        <xforms:label xml:lang="de-DE">exist</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">exist :: the specified property of the code does exist/does not exist (provided value must be true or false)</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">exist :: de opgegeven property van de code bestaat / bestaat niet (opgegeven waarde moet true of false zijn)</xs:documentation>
                    <xs:documentation xml:lang="de-DE">exist :: die angegebene Property des Codes existiert / existiert nicht (angegebener Wert muss true oder false sein)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="PropertyFilter">
        <xs:attribute name="property" type="EnumerationString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The code of a defined property of a code system (or one of the standard properties)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="op" type="IntensionalOperators" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Property Filter Operators</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="value" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The value of a defined property of a code system (or one of the standard properties)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:element name="codeSystem">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Code System</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A description that describes the Code System</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- 
                    there may be one publishing and one or more endorsing authorities
                    not used by DECOR yet, but is populated by the Code System API upon retrieval based on the first project/copyright
                -->
                <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Code System for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Code System for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- FHIR Value Set DSTUr1 0.8 compatibility -->
                <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A statement about the purpose of the Code System</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A copyright statement relating to the Code System and/or its contents.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <!-- 
                    there may be 0..* value set revision history discriptions
                    not used by DECOR yet
                -->
                <xs:element name="revisionHistory" type="ObjectHistory" minOccurs="0" maxOccurs="0">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">The free text description describing the changes in this version of the Code System as compared to the previous version. Since Code System versions are built off of previous versions, the net effect of this field is to function as a comprehensive historical reference of the Code System.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="property" type="CodedConceptPropertyDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Additional information supplied about each concept</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:choice maxOccurs="1">
                    <xs:element name="conceptList" type="CodeSystemConceptList" minOccurs="0" maxOccurs="1"/>
                    <!-- a FHIR code system was temporarily positioned here, deprecated -->
                    <xs:any namespace="http://hl7.org/fhir" minOccurs="0" maxOccurs="1" processContents="skip"/>
                </xs:choice>
            </xs:sequence>
            <xs:attribute name="id" use="optional" type="Oid">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A version identifier that uniquely identifies each version of a Code System</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="canonicalUri" use="optional"/>
            <xs:attribute name="ref" type="Oid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A reference to a version identifier of a Code System</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="name" use="required" type="BasicId"/>
            <xs:attribute ref="displayName" use="required"/>
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>
            <xs:attribute ref="experimental" use="optional"/>
            <xs:attribute name="caseSensitive" type="xs:boolean" use="optional" default="true">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">If code comparison is case sensitive when codes within this system are compared to each other. If this value is missing, then it is not specified whether a code system is case sensitive or not.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!-- if @ref, flexibility -->
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a codeSystem/@codeSystem. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- Only relevant after compilation -->
            <xs:attributeGroup ref="CodeSystemCompilationAttributes"/>
        </xs:complexType>
        <xs:unique name="desc-language-unique">
            <xs:selector xpath="desc"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="purpose-language-unique">
            <xs:selector xpath="purpose"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="copyright-language-unique">
            <xs:selector xpath="copyright"/>
            <xs:field xpath="@language"/>
        </xs:unique>
        <xs:unique name="property-code-unique">
            <xs:selector xpath="property"/>
            <xs:field xpath="@code"/>
        </xs:unique>
        <xs:unique name="codedConcept-code-unique">
            <xs:selector xpath="conceptList/codedConcept"/>
            <xs:field xpath="@code"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="CodeSystemConceptList">
        <xs:sequence>
            <xs:element ref="codedConcept" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="codedConcept">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="designation" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A language symbol for the concept that is intended to convey the concept meaning to a human being. It may contain multiple designations per language to expres preferences, synonyms etc. For example, in SNOMED CT, the concept of "fever" has the fully specified name of "fever (finding)", a preferred name of "fever", and synonyms of "febrile" and "pyrexia". These are all designations in English for the concept of "fever".</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">You may add a description for convenience, but should note that most of the time the description here overlaps with the designation/description of the coded concept</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="property" minOccurs="0" maxOccurs="unbounded" type="CodedConceptProperty"/>
                <xs:element name="parent" minOccurs="0" maxOccurs="unbounded" type="ParentOrChild"/>
                <xs:element name="child" minOccurs="0" maxOccurs="unbounded" type="ParentOrChild"/>
            </xs:sequence>
            <xs:attribute name="code" type="EnumerationString" use="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">An identifier that uniquely names the class or "concept" within the context of the defining Code System</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="statusCode" type="CodedConceptStatusCodeLifeCycle" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Status of the coded concept during the design phase</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
            <xs:attribute name="level" type="xs:integer" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Use of "level" is actually deprecated in code systems and shall be calculated upon use</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="type" type="VocabType" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Use of "type" D, S and L are deprecated in code systems and shall be calculated upon use. D when statusCode is deprecated, retired, cancelled or rejected. S when concept is not D and has children. L when concept is not D and does not have children. Type A still has purpose</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute ref="ordinal" use="optional"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="CodedConceptProperty">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Property value for the coded concept</xs:documentation>
        </xs:annotation>
        <xs:choice>
            <xs:element name="valueCode" minOccurs="0" maxOccurs="unbounded" type="ValueCodeType"/>
            <xs:element name="valueCoding" minOccurs="0" maxOccurs="unbounded" type="ValueCodingType"/>
            <xs:element name="valueString" minOccurs="0" maxOccurs="unbounded" type="ValueStringType"/>
            <xs:element name="valueInteger" minOccurs="0" maxOccurs="unbounded" type="ValueIntegerType"/>
            <xs:element name="valueBoolean" minOccurs="0" maxOccurs="unbounded" type="ValueBooleanType"/>
            <xs:element name="valueDateTime" minOccurs="0" maxOccurs="unbounded" type="ValueDateTimeType"/>
            <xs:element name="valueDecimal" minOccurs="0" maxOccurs="unbounded" type="ValueDecimalType"/>
        </xs:choice>
        <xs:attribute name="code" type="EnumerationString"/>
    </xs:complexType>
    <xs:complexType name="ParentOrChild">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">A reference per code to a parent or child concept</xs:documentation>
        </xs:annotation>
        <xs:attribute name="code" type="EnumerationString"/>
    </xs:complexType>
    <xs:complexType name="CodedConceptPropertyDefinition">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional information supplied about each coded concept</xs:documentation>
        </xs:annotation>
        <xs:attribute name="code" type="EnumerationString" use="required"/>
        <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
        <xs:attribute name="description" type="NonEmptyString" use="optional"/>
        <xs:attribute name="type" type="CodedConceptPropertyDefinitionType" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="CodedConceptPropertyDefinitionType">
        <xs:annotation>
            <xs:documentation>Type of Coded Concept Property</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="code">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A simple code</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Coding">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A coded concept</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="string">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A string</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="integer">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">An integer</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A boolean</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="dateTime">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A dateTime</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="decimal">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A decimal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="designation">
        <xs:complexType>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A description for the designation</xs:documentation>
            </xs:annotation>
            <xs:complexContent>
                <xs:extension base="FreeFormMarkupWithLanguageCode">
                    <xs:attribute name="type" type="DesignationType" use="optional">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">Type of designation (for that language), preferred, synonym, abbreviation, fully specified name</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute ref="displayName" use="required">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">A short description string for the designation</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="DesignationType">
        <xs:annotation>
            <xs:documentation>Details of how a designation would be used, see also http://hl7.org/fhir/ValueSet/designation-use (2.16.840.1.113883.4.642.3.259), extended</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="preferred">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">preferred</xforms:label>
                        <xforms:label xml:lang="nl-NL">preferent</xforms:label>
                        <xforms:label xml:lang="de-DE">bevorzugt</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">preferred</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="synonym">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">synonym</xforms:label>
                        <xforms:label xml:lang="nl-NL">synoniem</xforms:label>
                        <xforms:label xml:lang="de-DE">Synonym</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">synonym</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="abbreviation">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">abbreviation</xforms:label>
                        <xforms:label xml:lang="nl-NL">afkorting</xforms:label>
                        <xforms:label xml:lang="de-DE">Abkürzung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">abbreviation</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="fsn">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">fully specified name</xforms:label>
                        <xforms:label xml:lang="nl-NL">volledig gespecificeerde naam</xforms:label>
                        <xforms:label xml:lang="de-DE">vollständig spezifizierter Name</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">fully specified name</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="patientfriendly">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">patient-friendly</xforms:label>
                        <xforms:label xml:lang="nl-NL">patiëntvriendelijk</xforms:label>
                        <xforms:label xml:lang="de-DE">patientenfreundlich</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">patient-friendly</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="BrowsableDesignationType">
        <xs:annotation>
            <xs:documentation>Details of how a designation would be used</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="pref">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">preferred</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="syn">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">synonym</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="abbr">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">abbreviation</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="fsn">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">fully specified name</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="lfsn">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LOINC fully specified name</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="rel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LOINC related name</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="prefShrt">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LOINC short name</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="prefPat">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">patient friendly preferred term</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="prefPatB1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">patient friendly preferred term B1 level</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ConceptMapRelationshipType">
        <xs:annotation>
            <xs:documentation>Details of how two concepts map to each other, the source is : related-to | equivalent | equal | wider | narrower | not-related ; See also FHIR ConceptMapEquivalence http://hl7.org/fhir/concept-map-equivalence; Releationship with "ISO/TR 12300:2014 Health informatics, Principles of mapping between terminological systems" is also indicated.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="relatedto">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">related to</xforms:label>
                        <xforms:label xml:lang="nl-NL">gerelateerd aan</xforms:label>
                        <xforms:label xml:lang="de-DE">verwandt mit</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The concepts are related to each other, and have at least some overlap in meaning, but the exact relationship is not known.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="equal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">equal</xforms:label>
                        <xforms:label xml:lang="nl-NL">gelijk</xforms:label>
                        <xforms:label xml:lang="de-DE">gleich</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identical or irrelevant (i.e. intentionally identical). ISO 12300: 1 = Equivalence of meaning; lexical, as well as conceptual. For example, asthma and asthma; ovarian cyst and cyst of ovary.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="equivalent">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">equivalent</xforms:label>
                        <xforms:label xml:lang="nl-NL">gelijkwaardig</xforms:label>
                        <xforms:label xml:lang="de-DE">äquivalent</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical). ISO 12300: 2 = Equivalence of meaning, but with synonymy. For example, ureteric calculus and ureteric stone; gall stones and cholelithiasis.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="wider">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">wider</xforms:label>
                        <xforms:label xml:lang="nl-NL">breder</xforms:label>
                        <xforms:label xml:lang="de-DE">breiter</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The source concept is broader in meaning than the target concept. ISO 12300: 3 = Source concept is broader and has a less specific meaning than the target concept/term. For example, obesity and morbid obesity; diabetes and diabetes mellitus type II. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="narrower">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">narrower</xforms:label>
                        <xforms:label xml:lang="nl-NL">nauwer</xforms:label>
                        <xforms:label xml:lang="de-DE">enger</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The source concept is narrower in meaning than the target concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally. ISO 12300: 4 = Source concept is narrower and has a more specific meaning than the target concept/term. For example, feels ugly and self-image finding; acute renal failure syndrome secondary to dehydration and acute renal failure syndrome.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="unmatched">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">unmatched</xforms:label>
                        <xforms:label xml:lang="nl-NL">onvergelijkbaar</xforms:label>
                        <xforms:label xml:lang="de-DE">unvergleichbar</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">There is no match for this concept in the destination concept system. ISO 12300: 5 = No map is possible. No concept was found in the target with some degree of equivalence (as measured by any of the other four ratings).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="EquivalencyType">
        <xs:annotation>
            <xs:documentation>Details of how two concepts map to each other, the source is : relatedto | equivalent | equal | wider | subsumes | narrower | specializes | inexact | unmatched | disjoint; See also FHIR ConceptMapEquivalence http://hl7.org/fhir/concept-map-equivalence; Releationship with "ISO/TR 12300:2014 Health informatics, Principles of mapping between terminological systems" is also indicated</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="relatedto">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">related to</xforms:label>
                        <xforms:label xml:lang="nl-NL">gerelateerd aan</xforms:label>
                        <xforms:label xml:lang="de-DE">verwandt mit</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The concepts are related to each other, and have at least some overlap in meaning, but the exact relationship is not known</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="equal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">equal</xforms:label>
                        <xforms:label xml:lang="nl-NL">gelijk</xforms:label>
                        <xforms:label xml:lang="de-DE">gleich</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The definitions of the concepts are exactly the same (i.e. only grammatical differences) and structural implications of meaning are identical or irrelevant (i.e. intentionally identical). ISO 12300: 1 = Equivalence of meaning; lexical, as well as conceptual. For example, asthma and asthma; ovarian cyst and cyst of ovary. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="equivalent">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">equivalent</xforms:label>
                        <xforms:label xml:lang="nl-NL">gelijkwaardig</xforms:label>
                        <xforms:label xml:lang="de-DE">äquivalent</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The definitions of the concepts mean the same thing (including when structural implications of meaning are considered) (i.e. extensionally identical). ISO 12300: 2 = Equivalence of meaning, but with synonymy. For example, ureteric calculus and ureteric stone; gall stones and cholelithiasis </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="wider">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">wider</xforms:label>
                        <xforms:label xml:lang="nl-NL">breder</xforms:label>
                        <xforms:label xml:lang="de-DE">breiter</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The source concept is broader in meaning than the target concept. ISO 12300: 3 = Source concept is broader and has a less specific meaning than the target concept/term. For example, obesity and morbid obesity; diabetes and diabetes mellitus type II. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="subsumes">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">subsumes</xforms:label>
                        <xforms:label xml:lang="nl-NL">omvat</xforms:label>
                        <xforms:label xml:lang="de-DE">umfasst</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The target concept subsumes the meaning of the source concept (e.g. the source is-a target)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="narrower">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">narrower</xforms:label>
                        <xforms:label xml:lang="nl-NL">nauwer</xforms:label>
                        <xforms:label xml:lang="de-DE">enger</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US"> The source concept is narrower in meaning than the target concept. The sense in which the mapping is narrower SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally. ISO 12300: 4 = Source concept is narrower and has a more specific meaning than the target concept/term. For example, feels ugly and self-image finding; acute renal failure syndrome secondary to dehydration and acute renal failure syndrome. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="specializes">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">specializes</xforms:label>
                        <xforms:label xml:lang="nl-NL">specialiseert</xforms:label>
                        <xforms:label xml:lang="de-DE">spezialisiert</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">The target concept specializes the meaning of the source concept (e.g. the target is-a source)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="inexact">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">inexact</xforms:label>
                        <xforms:label xml:lang="nl-NL">onnauwkeurig</xforms:label>
                        <xforms:label xml:lang="de-DE">ungenau</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US"> The mappings overlap, but both source and target cover additional meaning, or the definitions are imprecise and it is uncertain whether they have the same boundaries to their meaning. The sense in which the mapping is different SHALL be described in the comments in this case, and applications should be careful when attempting to use these mappings operationally. </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="unmatched">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">unmatched</xforms:label>
                        <xforms:label xml:lang="nl-NL">onvergelijkbaar</xforms:label>
                        <xforms:label xml:lang="de-DE">unvergleichbar</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US"> There is no match for this concept in the destination concept system. ISO 12300: 5 = No map is possible. No concept was found in the target with some degree of equivalence (as measured by any of the other four ratings). </xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="disjoint">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">disjoint</xforms:label>
                        <xforms:label xml:lang="nl-NL">elkaar uitsluitend</xforms:label>
                        <xforms:label xml:lang="de-DE">sich auschließend</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This is an explicit assertion that there is no mapping between the source and target concept.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="browsableCodeSystem">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">This is the format for Code Systems that are used for the Centralized ART-DECOR Terminology Service (CADTS), e.g. for the cross terminology CADTS browser. This follows in essence the definition of the DECOR codeSystem but contains de-normalized items for speedy browsing. It has a mandatory id and no ref or compilation items and a shortened set of status codes, among others. It has a set of extensions, all classified as "denormalizing elements" that marked under the specific xs:appinfo </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="language" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Set of available languages of designations</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="LanguageCode">
                            <xs:attribute name="complete" type="xs:boolean" use="required">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">Indicates if a language is available for all concepts in the codesystem</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="identifier" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                    <xs:attribute name="system" type="Uri" use="optional"/>
                    <xs:attribute name="id" type="Uri" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="name" minOccurs="1" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Name of the Code System</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A description for the Code System</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="logo" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Filename of the logo for the codesystem</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="NonEmptyString">
                            <xs:attribute name="link" type="Uri" use="optional"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="license" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">License text of the Code System</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- 
                    there may be one publishing and one or more endorsing authorities
                    not used by DECOR yet, but is populated by the Code System API upon retrieval based on the first project/copyright
                -->
            <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Code System for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Code System for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- FHIR Value Set DSTUr1 0.8 compatibility -->
            <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A statement about the purpose of the Code System</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A copyright statement relating to the Code System and/or its contents.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="description" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A definition for the Code System</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="property" minOccurs="0" maxOccurs="unbounded" type="CodedConceptPropertyDefinition">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A property definition</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- the list of coded concepts -->
            <xs:element name="concept" type="codedConceptBrowsable" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="BasicId" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A short identifier for the Code System</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="url" type="Uri" use="optional"/>
        <xs:attribute name="oid" type="Oid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An identifier that uniquely identifies the Code System</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="version" type="ShortString" use="optional"/>
        <xs:attribute name="statusCode" type="TemplateStatusCodeLifeCycle" use="required"/>
        <xs:attribute ref="experimental" use="optional"/>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="optional"/>
        <xs:attribute name="expirationDate" type="TimeStampNoTimezone" use="optional"/>
        <xs:attribute name="defaultLanguage" type="LanguageCode" use="optional"/>
        <xs:attribute name="content" type="ShortString" use="optional">
            <!-- shall be an enumeration in the future : not-present | example | fragment | complete | supplement -->
        </xs:attribute>
        <xs:attribute name="structure" type="ShortString" use="optional">
            <!-- shall be an enumeration in the future : list | hierarchy | network -->
        </xs:attribute>
        <xs:attribute name="type" type="ShortString" use="optional">
            <!-- shall be an enumeration in the future : simple | complex -->
        </xs:attribute>
        <xs:attribute name="count" type="SmallNonNegativeInteger" use="optional"/>

        <xs:attribute ref="officialReleaseDate" use="optional"/>
        <xs:attribute ref="lastModifiedDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies last point in time that the object was changed. While any versionable object could principally be marked using this attribute, the list of objects that need this in practice is scoped to be dataset, scenario, transaction, valueSet, codeSystem, template. This list may be extended over time.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="caseSensitive" type="xs:boolean" use="optional" default="true">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">If code comparison is case sensitive when codes within this system are compared to each other. If this value is missing, then it is not specified whether a code system is case sensitive or not.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!-- if @ref, flexibility -->
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a codeSystem/@codeSystem. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="codedConceptBrowsable">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">This is a coded concept used for the Centralized ART-DECOR Terminology Service (CADTS), e.g. for the cross terminology CADTS browser. It has a set of extensions, all classified as "denormalizing elements" that marked under the specific xs:appinfo </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="designation" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">This is a browsable coded concept designation used for ART-DECOR Terminology Service (CADTS). Some elements or attributes use shorter names for less space occupancy in the browsable format, g use BrowsableFreeFormMarkupWithLanguageCode</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A description for the designation</xs:documentation>
                    </xs:annotation>
                    <xs:complexContent>
                        <xs:extension base="BrowsableFreeFormMarkupWithLanguageCode">
                            <xs:attribute name="use" type="BrowsableDesignationType" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">Type of designation (for that language), preferred, synonym, abbreviation, fully specified name</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="count" type="SmallNonNegativeInteger" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">Word count of the designation, used for sorting search results.</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>SPED</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="length" type="SmallNonNegativeInteger" use="required">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">String length of the designation, used for sorting search results.</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>SPED</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="effectiveDate" use="optional"/>
                            <xs:attribute name="expirationDate" use="optional"/>
                            <xs:attribute name="lastModifiedDate" use="optional"/>
                            <!-- from old times for backward compatibility -->
                            <xs:attribute name="statusCode" type="CodedConceptStatusCodeLifeCycleStable" use="optional" default="active">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">Status of the coded concept during the design phase</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="component" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="property" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="timing" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="system" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="scale" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="method" type="xs:string" use="optional">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">LOINC axis (fsn) attributes of designation, can only appear if use=lfsn</xs:documentation>
                                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                                        <extension>LOINC</extension>
                                    </xs:appinfo>
                                </xs:annotation>
                            </xs:attribute>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="definition" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">A definition of the coded concept</xs:documentation>
                    </xs:annotation>
                    <xs:complexContent>
                        <xs:extension base="BrowsableFreeFormMarkupWithLanguageCode">
                            <!-- from old times for backward compatibility -->
                            <xs:attribute name="statusCode" type="CodedConceptStatusCodeLifeCycleStable" use="optional" default="active">
                                <xs:annotation>
                                    <xs:documentation xml:lang="en-US">Status of the coded concept during the design phase</xs:documentation>
                                </xs:annotation>
                            </xs:attribute>
                            <xs:attribute name="effectiveDate" use="optional"/>
                            <xs:attribute name="expirationDate" use="optional"/>
                            <xs:attribute name="lastModifiedDate" use="optional"/>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="comment" minOccurs="0" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
            <xs:element name="loinc" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">container for LOINC properties</xs:documentation>
                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                        <extension>LOINC</extension>
                    </xs:appinfo>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="class" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="classType" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="orderObs" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="firstRelease" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="lastChange" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="unitsRequired" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="exUnits" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="exUCUMunits" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="testRank" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="orderRank" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="siTestRank" minOccurs="1" maxOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="valueSet" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Associated value set, important for normative associated value sets</xs:documentation>
                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                        <extension>LOINC</extension>
                    </xs:appinfo>
                </xs:annotation>
                <xs:complexType>
                    <xs:attribute name="type" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">type of value set link, example, normative etc.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="id" type="xs:string">
                        <xs:annotation>
                            <xs:documentation xml:lang="en-US">id of the associated value set</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:complexType>
            </xs:element>
            <xs:choice maxOccurs="unbounded">
                <xs:annotation>
                    <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                        <extension>SPED</extension>
                    </xs:appinfo>
                </xs:annotation>
                <xs:element name="parent" minOccurs="0" maxOccurs="unbounded" type="ParentStable">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of stable parents of the coded concept</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                </xs:element>
                <xs:element name="child" minOccurs="0" maxOccurs="unbounded" type="ChildStable">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of stable children of the coded concept</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ancestor" minOccurs="0" maxOccurs="unbounded" type="AncestorStable">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of stable ancestors of the coded concept</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ancSlf" minOccurs="0" maxOccurs="unbounded" type="AncestorOrSelfStable">
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of stable ancestors of self of the coded concept</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                </xs:element>
            </xs:choice>
            <xs:element name="relGrp" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Group of relationships that belong together</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element name="relation" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="ancest" minOccurs="0" maxOccurs="unbounded">
                                        <xs:annotation>
                                            <xs:documentation xml:lang="en-US">Ancestors of the related concept, used for intensional valueset definitions</xs:documentation>
                                        </xs:annotation>
                                    </xs:element>
                                    <xs:element name="label" type="BrowsableFreeFormMarkupWithLanguageCode" minOccurs="1" maxOccurs="unbounded"/>
                                    <xs:element name="typeLabel" type="BrowsableFreeFormMarkupWithLanguageCode" minOccurs="1" maxOccurs="unbounded"/>
                                </xs:sequence>
                                <xs:attribute name="destCode" use="optional"/>
                                <xs:attribute name="typeCode" use="optional"/>
                                <xs:attribute name="effectiveDate" use="optional"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                    <xs:attribute name="grpId" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="refsets" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of refset</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SNOMED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element name="refset" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="label" type="BrowsableFreeFormMarkupWithLanguageCode" minOccurs="1" maxOccurs="unbounded"/>
                                </xs:sequence>
                                <xs:attribute name="refsetId" type="xs:string"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="maps" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">List of maps</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SNOMED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element name="map" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:attribute name="refsetId" type="xs:string"/>
                                <xs:attribute name="mapGroup" type="xs:string"/>
                                <xs:attribute name="mapPriority" type="xs:string"/>
                                <xs:attribute name="mapRule" type="xs:string"/>
                                <xs:attribute name="mapAdvice" type="xs:string"/>
                                <xs:attribute name="mapTarget" type="xs:string"/>
                                <xs:attribute name="correlationId" type="xs:string"/>
                                <xs:attribute name="refset" type="xs:string"/>
                                <xs:attribute name="correlation" type="xs:string"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="association" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Associated concept, used for additional information on deprecated concepts</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SPED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element name="refsetLabel" minOccurs="1" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
                        <xs:element name="targetLabel" minOccurs="1" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
                    </xs:sequence>
                    <xs:attribute name="refsetId" type="xs:string"/>
                    <xs:attribute name="targetComponentId" type="xs:string"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="attributeValue" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:annotation>
                        <xs:documentation xml:lang="en-US">Associated refset attribute</xs:documentation>
                        <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                            <extension>SNOMED</extension>
                        </xs:appinfo>
                    </xs:annotation>
                    <xs:sequence>
                        <xs:element name="refsetLabel" minOccurs="1" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
                        <xs:element name="valueLabel" minOccurs="1" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
                    </xs:sequence>
                    <xs:attribute name="refsetId" type="xs:string"/>
                    <xs:attribute name="valueId" type="xs:string"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="property" minOccurs="0" maxOccurs="unbounded" type="CodedConceptProperty"/>
        </xs:sequence>
        <xs:attribute name="code" type="EnumerationString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">An identifier that uniquely names the class or "concept" within the context of the defining Code System</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="statusCode" type="CodedConceptStatusCodeLifeCycleStable" use="optional" default="active">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Status of the coded concept during the design phase</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="level" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Level, optional, calculated</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="type" type="VocabType" use="optional"/>
        <xs:attribute name="moduleId" type="xs:string" use="optional"/>
        <xs:attribute name="sufficientlyDefined" type="xs:boolean" use="optional"/>
        <xs:attribute name="effectiveDate" use="optional"/>
        <xs:attribute name="expirationDate" use="optional"/>
        <xs:attribute name="lastModifiedDate" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ParentStable">
        <xs:sequence>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A reference per code to a parent concept, code carried in a different element name for speedy browsing</xs:documentation>
                <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                    <extension>SPED</extension>
                </xs:appinfo>
            </xs:annotation>
            <xs:element name="label" minOccurs="0" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
        </xs:sequence>
        <xs:attribute name="pCode" type="EnumerationString" use="required"/>
        <xs:attribute name="subCount" type="SmallNonNegativeInteger" use="required"/>
        <xs:attribute name="level" type="xs:integer" use="optional"/>
        <xs:attribute name="type" type="VocabType" use="optional"/>
    </xs:complexType>
    <xs:complexType name="ChildStable">
        <xs:sequence>
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A reference per code to a parent concept, code carried in a different element name for speedy browsing</xs:documentation>
                <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                    <extension>SPED</extension>
                </xs:appinfo>
            </xs:annotation>
            <xs:element name="label" minOccurs="0" maxOccurs="unbounded" type="BrowsableFreeFormMarkupWithLanguageCode"/>
        </xs:sequence>
        <xs:attribute name="cCode" type="EnumerationString" use="required"/>
        <xs:attribute name="subCount" type="SmallNonNegativeInteger" use="required"/>
        <xs:attribute name="sequence" use="optional"/>
        <xs:attribute name="level" type="xs:integer" use="optional"/>
        <xs:attribute name="type" type="VocabType" use="optional"/>
    </xs:complexType>
    <xs:complexType name="AncestorStable">
        <xs:simpleContent>
            <xs:annotation>
                <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                    <extension>SPED</extension>
                </xs:appinfo>
            </xs:annotation>
            <xs:extension base="xs:string">
                <xs:attribute name="distance" type="SmallNonNegativeInteger" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="AncestorOrSelfStable">
        <xs:simpleContent>
            <xs:annotation>
                <xs:appinfo source="https://docs.art-decor.org/denormalization-extensions">
                    <extension>SPED</extension>
                </xs:appinfo>
            </xs:annotation>
            <xs:extension base="xs:string">
                <xs:attribute name="distance" type="SmallNonNegativeInteger" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:element name="rules">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="templateAssociation" type="TemplateAssociationDefinition" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="template" type="TemplateDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:unique name="templateversion-node-id-unique">
                        <xs:selector xpath=".//element | .//attribute"/>
                        <xs:field xpath="@id"/>
                    </xs:unique>
                    <xs:unique name="template-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="questionnaireAssociation" type="QuestionnaireAssociationDefinition" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="questionnaire" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
        </xs:complexType>
        <!-- Cannot have two questionnaires, structuredefinitions and/or templates carrying the same id and effectiveDate -->
        <xs:unique name="rule-idversion-unique">
            <xs:selector xpath="questionnaire | structuredefinition | template"/>
            <xs:field xpath="@id"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <!-- Cannot have two questionnaires, structuredefinitions and/or templates carrying the same ref -->
        <xs:unique name="rule-ref-unique">
            <xs:selector xpath="questionnaire | structuredefinition | template"/>
            <xs:field xpath="@ref"/>
        </xs:unique>
        <!-- Cannot have two templateAssociations for the same template (based on id and effectiveDate) -->
        <xs:unique name="templateAssociation-idversion-unique">
            <xs:selector xpath="templateAssociation"/>
            <xs:field xpath="@templateId"/>
            <xs:field xpath="@effectiveDate"/>
        </xs:unique>
        <!-- Cannot have two templateAssociations for the same template (based on id and effectiveDate) -->
        <xs:unique name="questionnaireAssociation-idversion-unique">
            <xs:selector xpath="questionnaireAssociation"/>
            <xs:field xpath="@questionnaireId"/>
            <xs:field xpath="@questionnaireEffectiveDate"/>
        </xs:unique>
        <!-- Cannot have two structuredefinitions carrying the same canonicalUri and version -->
        <xs:unique name="structuredefinition-uri-version-unique">
            <xs:selector xpath="structuredefinition"/>
            <xs:field xpath="@canonicalUri"/>
            <xs:field xpath="@version"/>
        </xs:unique>
    </xs:element>
    <xs:complexType name="TemplateAssociationDefinition">
        <xs:sequence>
            <xs:element name="concept" type="TemplateAssociationConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="templateId" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the template/@id this template association is referring to</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the template/@effectiveDate this template association is referring to (should actually be named templateEffectiveDate according to the other attribute @templateId</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="QuestionnaireAssociationDefinition">
        <xs:sequence>
            <xs:element name="concept" type="TemplateAssociationConcept" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="questionnaireId" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the questionnaire/@id this questionnaire association is referring to</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireEffectiveDate" type="TimeStampNoTimezone" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to the questionnaire/@effectiveDate this questionnaire association is referring to</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="TemplateAssociationConcept">
        <xs:attribute name="ref" type="Oid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a concept/@id that is not in history or in a concept list</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required"/>
        <!-- either elementId if elements have ids, path expressions like Observation.code or Act/@classCode otherwise -->
        <xs:attribute name="elementId" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">For Templates this matches an element of attribute @id attribute. For StructureDefinitions this matches an element @id attribute</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="elementPath" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">For Templates this attribute is not applicable. For StructureDefinitions this matches an element/path/@value attribute. The attribute @elementPath is only relevant in the absence of an element/@id to bind on. When StructureDefinitions contains slicing then the element/path/@value will NOT be unique making the making the binding ambiguous.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="ProvenanceCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="TemplateDefinition">
        <xs:sequence>
            <!-- description(s) of template -->
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            <!-- the type(s) etc of the template, for later use -->
            <xs:element name="classification" type="TemplateProperties" minOccurs="0" maxOccurs="unbounded"/>
            <!-- relationships of this template -->
            <xs:element name="relationship" type="TemplateRelationships" minOccurs="0" maxOccurs="unbounded"/>
            <!-- context of template
                either
                <context id="*"/> for an element templateId context
                or <context path="//"/> for a specific context path
            -->
            <!-- 
                there may be one publishing and one or more endorsing authorities
                not used by DECOR yet
            -->
            <xs:element name="publishingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The authoritative body who has reviewed the Template for (clinical) accuracy and relevance, and authorized it for publication. Registries may require this element to be valued</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="endorsingAuthority" type="AuthorityType" minOccurs="0" maxOccurs="0">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A list of bodies who have reviewed the Template for (clinical) accuracy and relevance, and endorsed it for use</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- FHIR compatibility -->
            <xs:element name="purpose" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A statement about the purpose of the template</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="copyright" minOccurs="0" maxOccurs="unbounded" type="CopyrightText">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">A copyright statement relating to the template and/or its contents.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <!-- 
                there may be 0..* template revision history discriptions
                not used by DECOR yet
            -->
            <xs:element name="revisionHistory" type="ObjectHistory" minOccurs="0" maxOccurs="0">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">The free text description describing the changes in this version of the Template as compared to the previous version. Since Template versions are built off of previous versions, the net effect of this field is to function as a comprehensive historical reference of the Template.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element ref="context" minOccurs="0" maxOccurs="1"/>
            <!-- item reference and description(s), inherited by all subsequent elements unless overridden -->
            <xs:element ref="item" minOccurs="0" maxOccurs="1"/>

            <!-- examples may be given -->
            <xs:element ref="example" minOccurs="0" maxOccurs="unbounded"/>
            <!-- 
                there maybe 0..n inherit definitions before others in a template (indicating parent / sibling templates)
                not used by DECOR yet
            -->
            <xs:element name="inherit" type="InheritDefinition" minOccurs="0" maxOccurs="0"/>

            <!-- FHIR extra information (meta level), for FHIR profiles represented in the Template ITS (rules) only -->
            <xs:element name="fhir" type="FhirMetaAdditions" minOccurs="0" maxOccurs="1"/>

            <!-- 
                the design body: elements, attributes, choices or includes
            -->
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="choice" type="ChoiceDefinition" minOccurs="1" maxOccurs="unbounded">
                    <xs:unique name="choice-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="element" type="RuleDefinition" minOccurs="1" maxOccurs="unbounded">
                    <xs:unique name="element3-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="include" type="IncludeDefinition" minOccurs="1" maxOccurs="unbounded">
                    <xs:unique name="include2-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element ref="let" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="assert" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="report" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="defineVariable" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="constraint" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            </xs:choice>
        </xs:sequence>

        <!-- attributes of element (validation done by embedded schematron) -->
        <xs:attribute name="id" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The identifying OID of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="canonicalUri" use="optional"/>
        <xs:attribute name="ref" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@id. Templates SHALL carry either @id or @ref</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="ShortFormalName" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The mnemonic name of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- attributes of template (validation done by embedded schematron) -->
        <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
        <xs:attribute name="statusCode" type="TemplateStatusCodeLifeCycle" use="optional"/>
        <xs:attribute ref="displayName" use="optional"/>
        <xs:attribute name="isClosed" type="xs:boolean" use="optional" default="false">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Whether the template is open (other elements than specified allowed) or closed (no other elements than specified allowed)</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="TemplateCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="AuthorityType" mixed="true">
        <xs:sequence>
            <xs:element ref="addrLine" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="Oid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Id of the authority/organisation/person</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="name" type="NonEmptyString" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Name of the authority/organisation/person</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <!--<xs:attribute name="email" type="EmailType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Email address of the authority/organisation/person</xs:documentation>
            </xs:annotation>
        </xs:attribute>-->
        <xs:attributeGroup ref="PublicationAuthorityCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="ObjectHistory">
        <xs:sequence>
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
        </xs:sequence>
        <xs:attribute name="date" type="TimeStampNoTimezone"/>
        <xs:attribute name="by" type="NonEmptyString"/>
    </xs:complexType>
    <xs:complexType name="TemplateProperties">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The classification of the template</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="tag" type="NonEmptyString" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">In addition, tag elements could be incorporated to specifiy any number of tags for search purposes</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="property" type="NonEmptyString" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">In addition, property elements could be incorporated to specifiy any number of properties not part of the standard metadata, e.g. for operationalization instructions</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="type" type="TemplateTypes" use="required"/>
        <xs:attribute name="format" type="TemplateFormats" use="optional" default="hl7v3xml1"/>
    </xs:complexType>
    <xs:simpleType name="TemplateTypes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The type of the template, something like "cdaentrylevel", "cdasectionlevel", "messagelevel" etc.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="cdadocumentlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA document level template</xforms:label>
                        <xforms:label xml:lang="en-US">CDA Document Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA Document Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">CDA Document Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="messagelevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v2/v3 message level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V2/V3 Message Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V2/V3 Message Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V2 or V3 Message Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="cdaheaderlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA header level template</xforms:label>
                        <xforms:label xml:lang="en-US">CDA Header Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA Header Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">CDA Header Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="cdasectionlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA section level template</xforms:label>
                        <xforms:label xml:lang="en-US">CDA Section Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA Section level template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">CDA Section Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="cdaentrylevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">CDA entry level template</xforms:label>
                        <xforms:label xml:lang="en-US">CDA Entry Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">CDA Entry Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">CDA Entry Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="segmentlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v2 segment level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V2 Segment Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V2 Segment Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V2 Segment Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="clinicalstatementlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v3 Clinical Statement level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V3 Clinical Statement Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V3 Clinical Statement Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V3 Clinical Statement Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="controlactlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v3 Control Act level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V3 Control Act Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V3 Control Act Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V3 Control Act Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="payloadlevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v3 Payload level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V3 Payload Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V3 Payload Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V3 Payload Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="datatypelevel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7v2/v3 datatype level template</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 V2/V3 Datatype Level Template</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 V2/V3 Datatype Level Template</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 V2/V3 Datatype Level Template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="fhirprofile">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">HL7 FHIR Profile</xforms:label>
                        <xforms:label xml:lang="en-US">HL7 FHIR Profile</xforms:label>
                        <xforms:label xml:lang="de-DE">HL7 FHIR Profile</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">HL7 FHIR Profile</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="notype">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Templatetype niet gespecificeerd</xforms:label>
                        <xforms:label xml:lang="en-US">Template type not specified</xforms:label>
                        <xforms:label xml:lang="de-DE">Template-Typ nicht spezifiziert</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template type not specified</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="TemplateRelationships">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The relationships of the template regarding other templates or model artifacts</xs:documentation>
        </xs:annotation>
        <xs:attribute name="type" type="RelationshipTypes" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">The @type of the relationship of the template, at this point in time something like "SPEC", "GEN", "EQUIV", "VERSION", etc.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="template" type="BasicIdOrOid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A reference by name or id to a template identifier, used for template-template relationships</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="model" type="NonEmptyString" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">A reference to a model artifact identifier or description specifying from what this template is derived from or based on, e.g. an HL7 R-MIM, a DCM, used for template-model relationships</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="TemplateRelationshipCompilationAttributes"/>
    </xs:complexType>
    <xs:simpleType name="RelationshipTypes">
        <xs:restriction base="xs:NMTOKEN">
            <!-- Template-template relationships -->
            <xs:enumeration value="REPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Vervanging</xforms:label>
                        <xforms:label xml:lang="en-US">Replacement</xforms:label>
                        <xforms:label xml:lang="de-DE">Ersatz</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template replaces @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SPEC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Specialisatie</xforms:label>
                        <xforms:label xml:lang="en-US">Specialization</xforms:label>
                        <xforms:label xml:lang="de-DE">Spezialisierung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template specializes @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GEN">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Generalisatie</xforms:label>
                        <xforms:label xml:lang="en-US">Generalization</xforms:label>
                        <xforms:label xml:lang="de-DE">Generalisierung</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template generalizes @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="COPY">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Kopie</xforms:label>
                        <xforms:label xml:lang="en-US">Copy</xforms:label>
                        <xforms:label xml:lang="de-DE">Kopie</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template is a design copy of @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ADAPT">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Adaptatie</xforms:label>
                        <xforms:label xml:lang="en-US">Adaptation</xforms:label>
                        <xforms:label xml:lang="de-DE">Adaptation</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template is an adaptation of @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EQUIV">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Equivalent</xforms:label>
                        <xforms:label xml:lang="en-US">Equivalent</xforms:label>
                        <xforms:label xml:lang="de-DE">Equivalent</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template is equivalent to @template regarding design</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VERSION">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Versie</xforms:label>
                        <xforms:label xml:lang="en-US">Version</xforms:label>
                        <xforms:label xml:lang="de-DE">Version</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template is a version of @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BACKWD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Backward compatible</xforms:label>
                        <xforms:label xml:lang="en-US">Backward Compatible</xforms:label>
                        <xforms:label xml:lang="de-DE">Rückwärtskompatibel</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This template is backward compatible of @template</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- Template-model relationships -->
            <xs:enumeration value="DRIV">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Afgeleide</xforms:label>
                        <xforms:label xml:lang="en-US">Derived</xforms:label>
                        <xforms:label xml:lang="de-DE">Abgeleitet</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">For future use: This template is derived from model or other artifact expressed or specified in the @template attribute</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="QuestionnaireRelationshipTypes">
        <xs:restriction base="xs:NMTOKEN">
            <!-- Questionnaire relationships -->
            <xs:enumeration value="DRIV">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Afgeleide</xforms:label>
                        <xforms:label xml:lang="en-US">Derived</xforms:label>
                        <xforms:label xml:lang="de-DE">Abgeleitet</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This Questionnaire is derived from a transaction expressed or specified in the @ref attribute</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!-- Questionnaire Response relationships -->
            <xs:enumeration value="ANSW">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Antwoord</xforms:label>
                        <xforms:label xml:lang="en-US">Answer</xforms:label>
                        <xforms:label xml:lang="de-DE">Antwort</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">This Questionnaire Response answers a Questionnaire specified in @ref</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TemplateFormats">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">As of now only a few formats are supported, e.g. "HL7 V3 XML ITS 1" = hl7v3xml1</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="hl7v3xml1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format HL7v3 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="en-US">Template format HL7 V3 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format HL7 V3 XML ITS 1</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format HL7 V3 XML ITS 1</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <!--<xs:enumeration value="hl7v2.3.1xml">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format HL7v2.3.1 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="en-US">Template format HL7 V2.3.1 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format HL7 V2.3.1 XML ITS 1</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format HL7 V2.3.1 XML ITS 1</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="hl7v2.4xml">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format HL7v2.4 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="en-US">Template format HL7 V2.4 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format HL7 V2.4 XML ITS 1</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format HL7 V2.4 XML ITS 1</xs:documentation>
                </xs:annotation>
            </xs:enumeration>-->
            <xs:enumeration value="hl7v2.5xml">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format HL7v2.5 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="en-US">Template format HL7 V2.5 XML ITS 1</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format HL7 V2.5 XML ITS 1</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format HL7 V2.5 XML ITS 1</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="fhirxml">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format FHIR XML</xforms:label>
                        <xforms:label xml:lang="en-US">Template format FHIR XML</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format FHIR XML</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format FHIR XML</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="vmrxml">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">Template format vMR CDS XML</xforms:label>
                        <xforms:label xml:lang="en-US">Template format vMR CDS XML</xforms:label>
                        <xforms:label xml:lang="de-DE">Template format vMR CDS XML</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Template format vMR CDS XML</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="RuleDefinition">
        <xs:sequence>
            <!-- description(s) of elements -->
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            <!-- item label, inherited by all subsequent elements unless overridden -->
            <xs:element ref="item" minOccurs="0" maxOccurs="1"/>
            <!-- examples may be given -->
            <xs:element ref="example" minOccurs="0" maxOccurs="unbounded"/>
            <!-- 
                there maybe 0..1 inherit definitions before others in an element (indicating parent and sibling templates)
            -->
            <xs:element name="inherit" type="InheritDefinition" minOccurs="0" maxOccurs="0"/>
            <!-- 
                there may be 0..* vocabulary and 0..* property specifications
            -->
            <xs:choice>
                <xs:element ref="vocabulary" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <!-- 
                there may be 0..* text (element content) specifications
            -->
            <xs:element name="text" type="NonEmptyString" minOccurs="0" maxOccurs="unbounded"/>

            <!-- fhir extra information (element level), for FHIR profiles represented in the Template ITS (rules) only -->
            <xs:element name="fhir" type="FhirElementAdditions" minOccurs="0" maxOccurs="1"/>
            <!-- 
                attribute(s)
            -->
            <xs:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
            <!-- 
                choice of
                
                let
                assert 
                report
                
                defineVariable
                
                include
                
                choice
                
                or a new nested element
                
                or (non rule generating) items
                constraint
                issue
            -->
            <xs:choice maxOccurs="unbounded">
                <xs:element ref="let" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="assert" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="report" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="defineVariable" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="element" type="RuleDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:unique name="element-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="include" type="IncludeDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:unique name="include3-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="choice" type="ChoiceDefinition" minOccurs="0" maxOccurs="unbounded"/>
                <!-- DEPRECATED: <xs:element ref="references" minOccurs="0" maxOccurs="unbounded"/> -->
                <xs:element name="constraint" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            </xs:choice>
        </xs:sequence>

        <!-- attributes of template (validation done by embedded schematron) -->
        <xs:attribute ref="displayName" use="optional"/>
        <xs:attributeGroup ref="VersionHandlingEffectiveDateOptional"/>
        <xs:attribute name="statusCode" type="ItemStatusCodeLifeCycle" use="optional"/>

        <!-- attributes of element (validation done by embedded schematron) -->
        <xs:attribute name="name" use="optional" type="NonEmptyString"/>

        <!-- @include is no longer supported and replaced by the include element, useWhere is not implemented yet -->
        <xs:attribute name="include" type="xs:anyURI" use="prohibited"/>
        <xs:attribute name="useWhere" type="xs:boolean" default="false" use="optional"/>

        <!-- @contains -->
        <xs:attribute name="contains" type="BasicIdOrOid" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@id or @name. References to @name are discouraged because they become ambiguous quickly.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="MultiplicityRangeOptional"/>
        <xs:attribute name="conformance" type="ConformanceType" use="optional"/>
        <xs:attribute name="isMandatory" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Default is unspecified which in practice means 'false'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- an optional id for to be referenced by associated concepts -->
        <xs:attribute name="id" type="Oid"/>

        <!-- data type -->
        <!--<xs:attribute name="datatype" type="DatatypeName"/>-->
        <xs:attribute name="datatype" type="xs:QName"/>
        <xs:attribute name="isClosed" type="xs:boolean" use="optional" default="false">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Whether the template is open (other elements than specified allowed) or closed (no other elements than specified allowed)</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- coding strength -->
        <xs:attribute name="strength" type="CodingStrengthType" default="required" use="optional"/>

    </xs:complexType>
    <xs:complexType name="FhirMetaAdditions">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">
                FHIR extra information (meta / top level), for FHIR profiles represented in the Template ITS (rules) only.
                Hosts StructureDefinition's fellows: f:fhirVersion, f:kind, f:abstract, f:type, f:baseDefinition, f:derivation and f:mapping
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="mapping" type="FhirMetaMapping" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="fhirVersion" type="FhirObjectFormat" use="required"/>
        <!-- FIX the types -->
        <xs:attribute name="kind" type="xs:string" use="required"/>
        <xs:attribute name="abstract" type="xs:boolean" use="required"/>
        <xs:attribute name="type" type="xs:string" use="required"/>
        <xs:attribute name="baseDefinition" type="xs:string" use="optional"/>
        <xs:attribute name="derivation" type="xs:string" use="optional"/>
        <!-- FIX the types -->
    </xs:complexType>
    <xs:complexType name="FhirMetaMapping">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">
                FHIR extra information (element level), for FHIR profiles represented in the Template ITS (rules) only.
                Defines StructureDefinition's fellow f:mapping
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="identity" type="xs:string" use="required"/>
        <xs:attribute name="uri" type="Uri" use="required"/>
        <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="FhirElementMapping">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">
                FHIR extra information (element level), for FHIR profiles represented in the Template ITS (rules) only.
                Defines StructureDefinition's fellow f:mapping
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="identity" type="xs:string" use="required"/>
        <xs:attribute name="map" type="xs:string" use="required"/>
    </xs:complexType>

    <xs:complexType name="FhirElementAdditions">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">
                FHIR extra information (element level), for FHIR profiles represented in the Template ITS (rules) only.
                Hosts StructureDefinition's fellows: f:mustSupport, f:isModifier, f:isSummary, f:definition, f:comment, f:requirements, f:alias
                f:type, f:binding, f:mapping, f:constraint
            </xs:documentation>
        </xs:annotation>
        <!-- FIX the types -->
        <xs:sequence>
            <xs:element name="type" type="xs:anyType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="binding" minOccurs="0">
                <xs:complexType>
                    <xs:attribute name="displayName" type="xs:string" use="required"/>
                    <xs:attribute name="strength" type="xs:string" use="required"/>
                    <xs:attribute name="valueSet" type="Oid" use="optional"/>
                    <xs:attribute name="canonicalUri" type="Uri" use="optional"/>
                    <xs:attribute name="description" type="xs:string" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="mapping" type="FhirElementMapping" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="constraint" type="xs:anyType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="targetProfile" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:attribute name="ref" type="xs:string" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="fid" type="xs:string" use="required"/>
        <xs:attribute name="mustSupport" type="xs:boolean" default="false" use="optional"/>
        <xs:attribute name="isModifier" type="xs:boolean" default="false" use="optional"/>
        <xs:attribute name="isSummary" type="xs:boolean" default="false" use="optional"/>
        <xs:attribute name="definition" type="xs:string" use="optional"/>
        <xs:attribute name="comment" type="xs:string" use="optional"/>
        <xs:attribute name="requirements" type="xs:string" use="optional"/>
        <xs:attribute name="alias" type="xs:string" use="optional"/>
        <!-- FIX the types -->
    </xs:complexType>
    <xs:complexType name="IncludeDefinition">
        <xs:sequence>
            <!-- description(s) of an include -->
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            <!-- item label, inherited by all subsequent elements unless overridden -->
            <xs:element ref="item" minOccurs="0" maxOccurs="1"/>
            <xs:element ref="example" minOccurs="0" maxOccurs="unbounded"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <!-- DEPRECATED: <xs:element ref="references" minOccurs="0" maxOccurs="unbounded"/> -->
                <xs:element name="constraint" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            </xs:choice>
        </xs:sequence>

        <!-- attributes of includes (validation done by embedded schematron) -->
        <xs:attribute name="ref" type="BasicIdOrOid" use="required">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@id or @name. References to @name are discouraged because they become ambiguous quickly.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Reference to a template/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <!-- attributes of includes (validation done by embedded schematron) -->
        <xs:attribute name="scenario" type="NonEmptyString" use="prohibited"/>
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="prohibited"/>
        <xs:attributeGroup ref="MultiplicityRangeOptional"/>
        <xs:attribute name="conformance" type="ConformanceType" use="optional"/>
        <xs:attribute name="isMandatory" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Default is unspecified which in practice means 'false'.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="InheritDefinition">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Inherit an artefact (here: a concept or a template), referenced by a ref (id). If no effectiveDate is given, flexibility DYNAMIC is assumed, STATIC date otherwise.</xs:documentation>
        </xs:annotation>
        <!-- attributes of inherit (validation done by embedded schematron) -->
        <xs:attribute name="ref" type="Oid" use="required"/>
        <!-- attributes of inherit (validation done by embedded schematron) -->
        <xs:attribute name="effectiveDate" type="TimeStampNoTimezone" use="required"/>

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="InheritCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="ContainsDefinition">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Contains an artefact (here: a concept or a template), referenced by a ref (id). If no flexibility is given, flexibility DYNAMIC is assumed, STATIC date otherwise.</xs:documentation>
        </xs:annotation>
        <!-- attributes of contains (validation done by embedded schematron) -->
        <xs:attribute name="ref" type="Oid" use="required"/>
        <!-- attributes of contains (validation done by embedded schematron) -->
        <xs:attribute name="flexibility" type="StaticFlexibility" use="required"/>

        <!-- Only relevant after compilation -->
        <xs:attributeGroup ref="InheritCompilationAttributes"/>
    </xs:complexType>
    <xs:complexType name="ChoiceDefinition">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Choice of elements and includes. The choice supports min/max occurence and any of its constituents may have a min/max occurence. Min/max on consituents cannot exceed the min/max boundaries of the choice.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <!-- description(s) of elements -->
            <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            <!-- item label, inherited by all subsequent elements unless overridden -->
            <xs:element ref="item" minOccurs="0" maxOccurs="1"/>
            <xs:element name="fhir" type="FhirElementAdditions" minOccurs="0" maxOccurs="1"/>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="include" type="IncludeDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:unique name="include-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <xs:element name="element" type="RuleDefinition" minOccurs="0" maxOccurs="unbounded">
                    <xs:unique name="element2-constraint-unique">
                        <xs:selector xpath="constraint"/>
                        <xs:field xpath="@language"/>
                    </xs:unique>
                </xs:element>
                <!-- DEPRECATED: <xs:element ref="references" minOccurs="0" maxOccurs="unbounded"/> -->
                <xs:element name="constraint" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            </xs:choice>
        </xs:sequence>
        <xs:attributeGroup ref="MultiplicityRangeOptional"/>
        <xs:attribute name="name" type="xs:string"/>
    </xs:complexType>
    <xs:element name="example">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="type" type="ExampleType" use="optional" default="neutral">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Can be used to indicate that the instance fragment (example) is right (@type=valid) or wrong (@type=error); default is "neutral".</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Kan worden gebruikt om te markeren dat het instancefragment (voorbeeld) geldig is (@type=valid) of fout (@type=error); standaardwaarde is "neutral".</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="caption" type="NonEmptyString" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Can be used to specify a caption (string) that precedes the instance fragment (example)</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="ExampleType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Type of Example given</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="neutral">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">neutraal</xforms:label>
                        <xforms:label xml:lang="en-US">neutral</xforms:label>
                        <xforms:label xml:lang="de-DE">neutral</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Used to indicate that the instance fragment (example) is not explictly stated to be right or wrong.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Om aan te geven dat het instancefragment (voorbeeld) niet expliciet geldig of ongeldig is.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="valid">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">geldig</xforms:label>
                        <xforms:label xml:lang="en-US">valid</xforms:label>
                        <xforms:label xml:lang="de-DE">gültig</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Used to indicate explicitly that the instance fragment (example) is valid.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Om aan te geven dat het een correct instancefragment (voorbeeld) betreft.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="error">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="nl-NL">ongeldig</xforms:label>
                        <xforms:label xml:lang="en-US">error</xforms:label>
                        <xforms:label xml:lang="de-DE">ungültig</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">Used to indicate explicitly that the instance fragment (example) is in error.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Om aan te geven dat het een foutief instancefragment (voorbeeld) betreft.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <!-- DEPRECATED: <xs:element name="references">
        <!-\- references concept="2.16.840.1.113883.2.4.6.99999.90.20010" target="2.16.840.1.113883.2.4.6.99999.90.3.700" -\->
        <xs:complexType>
            <xs:attribute name="concept" type="Oid"/>
            <xs:attribute name="target" type="Oid"/>
        </xs:complexType>
    </xs:element>
    -->
    <xs:attribute name="ordinal" type="IntegerOrDecimalRange">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Relevant score value in an ordinal system, usually/preferably coded but ordinal values are known to exist with just a description. Coded examples include Apgar and Glasgow Coma Scale. An, at time of writing, uncoded example is the questionnaire "Positieve Gezondheid" (https://nl.wikipedia.org/wiki/Positieve_gezondheid)</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="experimental" type="xs:boolean">
        <xs:annotation>
            <xs:appinfo>
                <xforms:label xml:lang="en-US">experimental</xforms:label>
                <xforms:label xml:lang="nl-NL">voor testdoeleinden</xforms:label>
                <xforms:label xml:lang="de-DE">für Testzwecke</xforms:label>
            </xs:appinfo>
            <xs:documentation xml:lang="en-US">DECOR project, codeSystem, valueSet or other artifact is for testing purposes, not real usage</xs:documentation>
        </xs:annotation>
    </xs:attribute>

    <!-- version handling -->
    <xs:attribute name="effectiveDate" type="TimeStampNoTimezone">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Identifies the effective date of the version of the object.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="expirationDate" type="TimeStampNoTimezone">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Identifies the expiration date of the version of the object.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="officialReleaseDate" type="TimeStampNoTimezone">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Identifies the official release date of the version of the object.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="versionLabel" type="ShortDescriptiveName">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">A human readable version number or version label for convenient human rendition; not used by an application.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="lastModifiedDate" type="TimeStampNoTimezone">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Identifies last point in time that the object was changed.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attributeGroup name="VersionHandling">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used to define version handling attributes</xs:documentation>
        </xs:annotation>
        <xs:attribute ref="effectiveDate" use="required"/>
        <xs:attribute ref="expirationDate" use="optional"/>
        <xs:attribute ref="officialReleaseDate" use="optional"/>
        <xs:attribute ref="lastModifiedDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies last point in time that the object was changed. While any versionable object could principally be marked using this attribute, the list of objects that need this in practice is scoped to be dataset, scenario, transaction, valueSet, codeSystem, template. This list may be extended over time.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="versionLabel" use="optional"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="VersionHandlingEffectiveDateOptional">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used to define version handling attributes, effective date is optional here</xs:documentation>
        </xs:annotation>
        <xs:attribute ref="effectiveDate" use="optional"/>
        <xs:attribute ref="expirationDate" use="optional"/>
        <xs:attribute ref="officialReleaseDate" use="optional"/>
        <xs:attribute ref="lastModifiedDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Identifies last point in time that the object was changed. While any versionable object could principally be marked using this attribute, the list of objects that need this in practice is scoped to be dataset, scenario, transaction, valueSet, codeSystem, template. This list may be extended over time.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="versionLabel" use="optional"/>
    </xs:attributeGroup>
    <xs:element name="let">
        <xs:complexType>
            <xs:attribute name="name" type="NonEmptyString" use="required"/>
            <xs:attribute name="value" type="NonEmptyString" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="assert">
        <xs:complexType mixed="true">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:any processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="flag" type="NonEmptyString" use="optional"/>
            <xs:attribute name="see" type="NonEmptyString" use="optional"/>
            <xs:attribute name="role" type="AssertRole" use="required"/>
            <xs:attribute name="test" type="NonEmptyString" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="report">
        <xs:complexType mixed="true">
            <xs:sequence minOccurs="0" maxOccurs="unbounded">
                <xs:any processContents="skip"/>
            </xs:sequence>
            <xs:attribute name="flag" type="NonEmptyString" use="optional"/>
            <xs:attribute name="see" type="NonEmptyString" use="optional"/>
            <xs:attribute name="role" type="AssertRole" use="required"/>
            <xs:attribute name="test" type="NonEmptyString" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="defineVariable">
        <xs:complexType mixed="true">
            <xs:sequence>
                <xs:element name="code" minOccurs="0" maxOccurs="1" type="VarCode"/>
                <xs:element name="use" minOccurs="0" maxOccurs="1" type="VarUse"/>
            </xs:sequence>
            <xs:attribute name="name" type="xs:NCName" use="required"/>
            <xs:attribute name="path" type="xs:anyURI" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="VarCode">
        <xs:attribute name="code" use="required" type="EnumerationString"/>
        <xs:attribute name="codeSystem" use="required" type="Oid"/>
    </xs:complexType>
    <xs:complexType name="VarUse">
        <xs:attribute name="path" use="required" type="xs:anyURI"/>
        <xs:attribute name="as" use="required" type="DatatypeName"/>
    </xs:complexType>
    <xs:simpleType name="AssertRole">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Type of assertion (schematron)</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="fatal">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Fatal</xforms:label>
                        <xforms:label xml:lang="nl-NL">Fataal</xforms:label>
                        <xforms:label xml:lang="de-DE">Fatal</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="error">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Error</xforms:label>
                        <xforms:label xml:lang="nl-NL">Fout</xforms:label>
                        <xforms:label xml:lang="de-DE">Fehler</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="warning">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Warning</xforms:label>
                        <xforms:label xml:lang="nl-NL">Waarschuwing</xforms:label>
                        <xforms:label xml:lang="de-DE">Warnung</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="info">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Info</xforms:label>
                        <xforms:label xml:lang="nl-NL">Info</xforms:label>
                        <xforms:label xml:lang="de-DE">Info</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="item">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
            </xs:sequence>
            <xs:attribute name="label" type="NonEmptyString" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="context">
        <xs:complexType>
            <!-- Was: SelfReferenceTemplateIdOrOid, but the Oid construct never made it into the template DSTU and is not currently in use or supported by DECOR2Schematron -->
            <xs:attribute name="id" use="optional" type="SelfReferenceTemplateId"/>
            <xs:attribute name="path" use="optional" type="PathType"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="PathType">
        <xs:union memberTypes="PathTypeSlash xs:anyURI"/>
    </xs:simpleType>
    <xs:simpleType name="PathTypeSlash">
        <xs:restriction base="xs:string">
            <xs:enumeration value="/">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Path starts at root node</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="//">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Path starts at any node</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SelfReferenceTemplateId">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used as the type of a context template id</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="*">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Scope is templateId</xforms:label>
                        <xforms:label xml:lang="nl-NL">Scope is templateId</xforms:label>
                        <xforms:label xml:lang="de-DE">Scope is templateId</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">template scope is templateId element and sibling nodes. Requires a top level element templateId with the same id as the template itself</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="**">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Scope is top level element</xforms:label>
                        <xforms:label xml:lang="nl-NL">Scope is top level element</xforms:label>
                        <xforms:label xml:lang="de-DE">Scope is top level element</xforms:label>
                    </xs:appinfo>
                    <xs:documentation xml:lang="en-US">template scope is top level element with templateId element and child nodes. Requires that the template has one top level element and an element templateId with the same id as the template itself as child of that top level element</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SelfReferenceTemplateIdOrOid">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">a string "*" or "**" or a valid Oid. The value * requires a top level element templateId with the same id as the template itself. The value ** requires that the template has one top level element and an element templateId with the same id as the template itself as child of that top level element. When context/@id contains an Oid, the template requires requires a top level element templateId with that same id</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="SelfReferenceTemplateId Oid"/>
    </xs:simpleType>
    <xs:element name="pathname">
        <xs:complexType>
            <xs:attribute name="path" use="required" type="Uri"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="DecimalRange">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">A real number that is restricted to a maximum of 10 characters, and may have no more than 5 decimal places.</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:decimal">
            <xs:maxExclusive value="1000000000"/>
            <xs:minInclusive value="-1000000000"/>
            <xs:fractionDigits value="5"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IntegerRange">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">An integer number that is restricted to a maximum of 10 characters</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:integer">
            <xs:maxExclusive value="1000000000"/>
            <xs:minInclusive value="-1000000000"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="IntegerOrDecimalRange">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">An integer or decimal range</xs:documentation>
        </xs:annotation>
        <xs:union memberTypes="IntegerRange DecimalRange"/>
    </xs:simpleType>
    <xs:element name="cardinality">
        <xs:complexType>
            <xs:attributeGroup ref="MultiplicityRangeRequired"/>
            <xs:attribute name="conformance" type="ConformanceType"/>
            <xs:attribute name="isMandatory" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Default is unspecified which in practice means 'false'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="attribute">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="desc" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
                <!-- item label, inherited by all subsequent elements unless overridden -->
                <xs:element ref="item" minOccurs="0" maxOccurs="1"/>

                <xs:choice>
                    <xs:element ref="vocabulary" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="constraint" minOccurs="0" maxOccurs="unbounded" type="FreeFormMarkupWithLanguage"/>
                </xs:choice>

                <!-- constraints for attributes of type "coded" or "quantities"??????? -->
                <!-- 
                    <xs:choice maxOccurs="1">
                    <xs:element ref="vocabulary" minOccurs="0" maxOccurs="1"/>
                    <xs:element ref="property" minOccurs="0" maxOccurs="1"/>
                </xs:choice>
                -->
            </xs:sequence>

            <!-- == start definitional attributes -->
            <!-- name of attributes required (name) -->
            <xs:attribute name="name" type="EnumerationToken"/>

            <!-- data type II: elements where other siblings are allowed -->
            <xs:attribute name="value" type="NonEmptyString"/>
            <!-- == end definitional attributes -->

            <!-- == start shorthand attributes (discouraged) == -->
            <!-- (@classCode|@contextConductionInd|@contextControlCode|@determinerCode|
                  @extension|@independentInd|@institutionSpecified|@inversionInd|
                  @mediaType|@moodCode|@negationInd|@nullFlavor|
                  @operator|@qualifier|@representation|@root|
                  @typeCode|@unit|@use) -->
            <xs:attribute name="classCode" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="contextConductionInd" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="contextControlCode" type="EnumerationToken">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="determinerCode" type="EnumerationToken">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="extension" type="NonEmptyString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="independentInd" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="institutionSpecified" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="inversionInd" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="mediaType" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="moodCode" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="negationInd" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="nullFlavor" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="operator" type="EnumerationToken">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="qualifier" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="representation" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="root" type="OidChoiceList">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="typeCode" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="unit" type="NonEmptyString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="use" type="EnumerationString">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Shorthand for HL7 V3 attribute. Use is discouraged, please use @name='..' and optionally @value='..' instead</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- == end shorthand attributes (discouraged) == -->

            <!-- == start attribute properties == -->

            <xs:attribute name="isOptional" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Determines that the attribute is requird to be in the instance. Default is 'false', meaning that the attribute is NOT optional, and thus required.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="prohibited" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Determines that the attribute is prohibited to be in the instance.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <!--<xs:attribute name="datatype" type="AttributeDatatypeName"/>-->
            <xs:attribute name="datatype" type="xs:QName">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Determines the datatype of the attribute in the instance.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- == end attributes properties == -->

            <!-- == start DECOR internal purpose only == -->
            <!-- 20141215 - an optional id for to be referenced by associated concepts -->
            <xs:attribute name="id" type="Oid"/>
            <!-- == end DECOR internal purpose only == -->
        </xs:complexType>
        <xs:unique name="attribute-constraint-unique">
            <xs:selector xpath="constraint"/>
            <xs:field xpath="@language"/>
        </xs:unique>
    </xs:element>
    <xs:simpleType name="AttributeDatatypeName">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used for datatype names of attributes only</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:maxLength value="60"/>
            <xs:pattern value="[a-z_]+(.[a-z]+)*(.diffType)?"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="property">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used for attributes of type "quantity", "string" or "boolean". Allows assertion of one or more units, ranges, fraction digits or fixed values. Valid combinations of attributes are: <li>
                    <ul>@unit @minInclude @maxInclude @fractionDigits</ul>
                    <ul>@currency @minInclude @maxInclude @fractionDigits</ul>
                    <ul>@minLength @maxLength</ul>
                    <ul>@value</ul>
                </li>
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>

            <!-- quantity constraints -->
            <xs:attribute name="unit" type="NonEmptyString"/>
            <xs:attribute name="currency" type="NonEmptyString"/>
            <xs:attribute name="minInclude" type="IntegerOrDecimalRange"/>
            <xs:attribute name="maxInclude" type="IntegerOrDecimalRange"/>
            <xs:attribute name="fractionDigits" type="FractionDigitsType"/>

            <!-- string constraints -->
            <xs:attribute name="minLength" type="SmallNonNegativeInteger"/>
            <xs:attribute name="maxLength" type="SmallNonNegativeInteger"/>

            <!-- fixed values -->
            <xs:attribute name="value" type="NonEmptyString"/>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="FractionDigitsType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Dataset Value Domain Time Stamp Precision</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{1,4}[!\.]?"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="vocabulary">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Used for attributes of "coded" types. Allows assertion of one or more codes, code systems or value sets.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <!-- value set assertions -->
            <xs:attribute name="valueSet" type="BasicIdOrOid" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@id or @name. References to @name are discouraged because they become ambiguous quickly.</xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="flexibility" type="StaticOrDynamicFlexibility" use="optional">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Reference to a valueSet/@effectiveDate. Default is unspecified which means 'latest available version'.</xs:documentation>
                </xs:annotation>
            </xs:attribute>

            <!-- code constraints -->
            <xs:attribute name="code" type="EnumerationString" use="optional"/>
            <xs:attribute name="codeSystem" type="Oid" use="optional"/>

            <!-- other constraints -->
            <xs:attribute ref="displayName" use="optional"/>
            <xs:attribute name="codeSystemName" type="NonEmptyString" use="optional"/>

            <!-- concept domain (a simple string as an "abstract" indication only) -->
            <xs:attribute name="domain" type="NonEmptyString" use="optional"/>

        </xs:complexType>
    </xs:element>
    <xs:simpleType name="CodingStrengthType">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Coding strength of a vocabulary binding</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="required">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Required/CNE. Coded with no exceptions; this element SHALL be from the specified value set</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Verplicht/CNE. Gecodeerd, geen uitzonderingen; dit element MOET uit de gespecificeerde waardenlijst komen</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Erforderlich/CNE. Codiert, keine Ausnahmen; das Element muss aus dem angegebene Value Set kommen.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Required/CNE</xforms:label>
                        <xforms:label xml:lang="nl-NL">Verplicht/CNE</xforms:label>
                        <xforms:label xml:lang="de-DE">Erforderlich/CNE</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="extensible">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Extensible/CWE. Coded with Exceptions; this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Uitbreidbaar/CWE. Gecodeerde uitzonderingen toegestaan; dit element MOET uit de gespecificeerde waardenlijst komen als een van de codes binnen de value set van toepassing is op het concept dat wordt gecommuniceerd. Als de waarde het concept niet dekt (op basis van menselijke beoordeling), kunnen in plaats daarvan alternatieve coderingen (of datatype waarmee wordt toegestaan, tekst) worden opgenomen.</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Erweiterbar/CWE. Codiert, Ausnahmen zugelassen; Dieses Element sollte aus dem angegebenen Value Set kommen, wenn das Konzept kommuniziert wird. Wenn der Code das Konzept nicht abdeckt (basierend auf menschlicher Überprüfung), können alternative Kodierungen (oder falls der Datentyp es erlaubt, Text) eingeschlossen sein.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Extensible/CWE</xforms:label>
                        <xforms:label xml:lang="nl-NL">Uitbreidbaar/CWE</xforms:label>
                        <xforms:label xml:lang="de-DE">Erweiterbar/CWE</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="preferred">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Preferred. Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Voorkeur. Instantiaties worden aangemoedigd om voor interoperabiliteitsdoeleinden codes op basis van de gespecificeerde waardenlijst te gebruiken.</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Bevorzugt. Instanzen werden aufgefordert, für Interoperabilitätszwecke die Codes aus dem Value Set zu nutzen.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Preferred</xforms:label>
                        <xforms:label xml:lang="nl-NL">Voorkeur</xforms:label>
                        <xforms:label xml:lang="de-DE">Bevorzugt</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="example">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Example. Instances are not expected or even encouraged to draw from the specified value set. The value set merely provides examples of the types of concepts intended to be included.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">Voorbeeld. Instantiaties worden niet verwacht of zelfs maar aangemoedigd om codes op basis van de gespecificeerde waardenlijst te gebruiken. De waardenlijst stelt een voorbeeld voor van het type concept dat gebruikt kan worden.</xs:documentation>
                    <xs:documentation xml:lang="de-DE">Beispiel. Es wird in Instanzen nicht erwartet, dass der Code aus dem Value Set genutzt wird. Das Value Set enthält Beispiele für den Typ Konzept, die verwendet werden können.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Example</xforms:label>
                        <xforms:label xml:lang="nl-NL">Voorbeeld</xforms:label>
                        <xforms:label xml:lang="de-DE">Beispiel</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CNE">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">deprecated: use required. Required/CNE. Coded with no exceptions; this element SHALL be from the specified value set</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">deprecated: gebruik required. Verplicht/CNE. Gecodeerd, geen uitzonderingen; dit element MOET uit de gespecificeerde waardenlijst komen</xs:documentation>
                    <xs:documentation xml:lang="de-DE">deprecated: use required. Erforderlich/CNE. Codiert, keine Ausnahmen; das Element muss aus dem angegebene Value Set kommen.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CNE (deprecated)</xforms:label>
                        <xforms:label xml:lang="nl-NL">CNE (deprecated)</xforms:label>
                        <xforms:label xml:lang="de-DE">CNE (deprecated)</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CWE">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">deprecated, use extensible. Extensible/CWE. Coded with Exceptions; this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.</xs:documentation>
                    <xs:documentation xml:lang="nl-NL">deprecated, gebruik extensible. Uitbreidbaar/CWE. Gecodeerde uitzonderingen toegestaan; dit element MOET uit de gespecificeerde waardenlijst komen als een van de codes binnen de waardenlijst van toepassing is op het concept dat wordt gecommuniceerd. Als de waarde het concept niet dekt (op basis van menselijke beoordeling), kunnen in plaats daarvan alternatieve coderingen (of datatype waarmee wordt toegestaan, tekst) worden opgenomen.</xs:documentation>
                    <xs:documentation xml:lang="de-DE">deprecated, use extensible. Erweiterbar/CWE. Codiert, Ausnahmen zugelassen; Dieses Element sollte aus dem angegebenen Value Set kommen, wenn das Konzept kommuniziert wird. Wenn der Code das Konzept nicht abdeckt (basierend auf menschlicher Überprüfung), können alternative Kodierungen (oder falls der Datentyp es erlaubt, Text) eingeschlossen sein.</xs:documentation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CWE (deprecated)</xforms:label>
                        <xforms:label xml:lang="nl-NL">CWE (deprecated)</xforms:label>
                        <xforms:label xml:lang="de-DE">CWE (deprecated)</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="LicenseTypes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">The license that applies to a DECOR project using an SPDX license Identifiers, or 'not-open-source'. The binding is required but new SPDX license Identifiers are allowed to be used (https://spdx.org/licenses/).</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="not-open-source">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Not an open source license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="0BSD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD Zero Clause License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AAL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Attribution Assurance License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Abstyles">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Abstyles License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Adobe-2006">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Adobe Systems Incorporated Source Code License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Adobe-Glyph">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Adobe Glyph List License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ADSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Amazon Digital Services License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academic Free License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academic Free License v1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academic Free License v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFL-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academic Free License v2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFL-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academic Free License v3.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Afmparse">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Afmparse License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AGPL-1.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Affero General Public License v1.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AGPL-1.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Affero General Public License v1.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AGPL-3.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Affero General Public License v3.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AGPL-3.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Affero General Public License v3.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Aladdin">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Aladdin Free Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AMDPLPA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">AMD's plpa_map.c License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AML">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apple MIT License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AMPAS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Academy of Motion Picture Arts and Sciences BSD.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ANTLR-PD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ANTLR Software Rights Notice.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Apache-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apache License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Apache-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apache License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Apache-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apache License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APAFML">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Adobe Postscript AFM License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Adaptive Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apple Public Source License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APSL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apple Public Source License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APSL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apple Public Source License 1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="APSL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Apple Public Source License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Artistic-1.0-cl8">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Artistic License 1.0 w/clause 8.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Artistic-1.0-Perl">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Artistic License 1.0 (Perl).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Artistic-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Artistic License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Artistic-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Artistic License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Bahyph">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Bahyph License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Barr">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Barr License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Beerware">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Beerware License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BitTorrent-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BitTorrent Open Source License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BitTorrent-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BitTorrent Open Source License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Borceux">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Borceux license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-1-Clause">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 1-Clause License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-2-Clause-FreeBSD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 2-Clause FreeBSD License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-2-Clause-NetBSD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 2-Clause NetBSD License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-2-Clause-Patent">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD-2-Clause Plus Patent License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-2-Clause">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 2-Clause "Simplified" License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-Attribution">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD with attribution.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-Clear">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 3-Clause Clear License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-LBNL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Lawrence Berkeley National Labs BSD variant license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-No-Nuclear-License-2014">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 3-Clause No Nuclear License 2014.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-No-Nuclear-License">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 3-Clause No Nuclear License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause-No-Nuclear-Warranty">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 3-Clause No Nuclear Warranty.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-3-Clause">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 3-Clause "New" or "Revised" License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-4-Clause-UC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD-4-Clause (University of California-Specific).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-4-Clause">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD 4-Clause "Original" or "Old" License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-Protection">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD Protection License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD-Source-Code">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">BSD Source Code Attribution.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Boost Software License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bzip2-1.0.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">bzip2 and libbzip2 License v1.0.5.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="bzip2-1.0.6">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">bzip2 and libbzip2 License v1.0.6.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Caldera">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Caldera License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CATOSL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Computer Associates Trusted Open Source License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-ND-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-ND-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-ND-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-ND-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-ND-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial No Derivatives 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-SA-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial Share Alike 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-SA-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial Share Alike 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-SA-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial Share Alike 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-SA-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial Share Alike 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-NC-SA-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Non Commercial Share Alike 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-ND-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution No Derivatives 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-ND-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution No Derivatives 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-ND-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution No Derivatives 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-ND-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution No Derivatives 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-ND-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution No Derivatives 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-SA-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Share Alike 1.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-SA-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Share Alike 2.0 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-SA-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Share Alike 2.5 Generic.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-SA-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Share Alike 3.0 Unported.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC-BY-SA-4.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Attribution Share Alike 4.0 International.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CC0-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Creative Commons Zero v1.0 Universal.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CDDL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Common Development and Distribution License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CDDL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Common Development and Distribution License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CDLA-Permissive-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Community Data License Agreement Permissive 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CDLA-Sharing-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Community Data License Agreement Sharing 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL Free Software License Agreement v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL Free Software License Agreement v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL Free Software License Agreement v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL Free Software License Agreement v2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-B">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL-B Free Software License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CECILL-C">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CeCILL-C Free Software License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ClArtistic">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Clarified Artistic License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CNRI-Jython">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CNRI Jython License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CNRI-Python-GPL-Compatible">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CNRI Python Open Source GPL Compatible License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CNRI-Python">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CNRI Python License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Condor-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Condor Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CPAL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Common Public Attribution License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Common Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CPOL-1.02">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Code Project Open License 1.02.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Crossword">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Crossword License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CrystalStacker">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CrystalStacker License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CUA-OPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CUA Office Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Cube">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Cube License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="curl">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">curl License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="D-FSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Deutsche Freie Software Lizenz.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="diffmark">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">diffmark license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DOC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">DOC License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Dotseqn">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Dotseqn License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DSDP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">DSDP License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="dvipdfm">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">dvipdfm License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Educational Community License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Educational Community License v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EFL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Eiffel Forum License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EFL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Eiffel Forum License v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="eGenix">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">eGenix.com Public License 1.1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Entessa">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Entessa Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Eclipse Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EPL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Eclipse Public License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ErlPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Erlang Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EUDatagrid">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">EU DataGrid Software License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EUPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">European Union Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EUPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">European Union Public License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EUPL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">European Union Public License 1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Eurosym">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Eurosym License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Fair">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Fair License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Frameworx-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Frameworx Open License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FreeImage">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">FreeImage Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FSFAP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">FSF All Permissive License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FSFUL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">FSF Unlimited License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FSFULLR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">FSF Unlimited License (with License Retention).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FTL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Freetype Project License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.1-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.1 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.1-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.1 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.2-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.2 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.2-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.2 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.3-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.3 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GFDL-1.3-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Free Documentation License v1.3 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Giftware">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Giftware License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GL2PS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GL2PS License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Glide">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">3dfx Glide License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Glulxe">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Glulxe License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="gnuplot">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">gnuplot License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-1.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v1.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-1.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v1.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-2.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v2.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-2.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v2.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-3.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v3.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GPL-3.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU General Public License v3.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="gSOAP-1.3b">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">gSOAP Public License v1.3b.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HaskellReport">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Haskell Language Report License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HPND">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Historical Permission Notice and Disclaimer.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IBM-pibs">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">IBM PowerPC Initialization and Boot Software.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ICU">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ICU License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IJG">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Independent JPEG Group License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ImageMagick">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ImageMagick License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="iMatix">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">iMatix Standard Function Library Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Imlib2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Imlib2 License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Info-ZIP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Info-ZIP License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Intel-ACPI">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Intel ACPI Software License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Intel">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Intel Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Interbase-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Interbase Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IPA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">IPA Font License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">IBM Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ISC">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ISC License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JasPer-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">JasPer License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JSON">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">JSON License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LAL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Licence Art Libre 1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LAL-1.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Licence Art Libre 1.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Latex2e">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Latex2e License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Leptonica">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Leptonica License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-2.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Library General Public License v2 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-2.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Library General Public License v2 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-2.1-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Lesser General Public License v2.1 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-2.1-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Lesser General Public License v2.1 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-3.0-only">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Lesser General Public License v3.0 only.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPL-3.0-or-later">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">GNU Lesser General Public License v3.0 or later.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LGPLLR">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Lesser General Public License For Linguistic Resources.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Libpng">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">libpng License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="libtiff">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">libtiff License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LiLiQ-P-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Licence Libre du Québec – Permissive version 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LiLiQ-R-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Licence Libre du Québec – Réciprocité version 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LiLiQ-Rplus-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Licence Libre du Québec – Réciprocité forte version 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Linux-OpenIB">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Linux Kernel Variant of OpenIB.org license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Lucent Public License Version 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPL-1.02">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Lucent Public License v1.02.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LaTeX Project Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LaTeX Project Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPPL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LaTeX Project Public License v1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPPL-1.3a">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LaTeX Project Public License v1.3a.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LPPL-1.3c">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">LaTeX Project Public License v1.3c.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MakeIndex">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">MakeIndex License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MirOS">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">MirOS License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT-0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">MIT No Attribution.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT-advertising">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Enlightenment License (e16).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT-CMU">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">CMU License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT-enna">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">enna License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT-feh">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">feh License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MIT">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">MIT License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MITNFA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">MIT +no-false-attribs license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Motosoto">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Motosoto License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="mpich2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">mpich2 License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Mozilla Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Mozilla Public License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MPL-2.0-no-copyleft-exception">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Mozilla Public License 2.0 (no copyleft exception).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MPL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Mozilla Public License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MS-PL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Microsoft Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MS-RL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Microsoft Reciprocal License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MTLL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Matrix Template Library License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Multics">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Multics License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Mup">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Mup License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NASA-1.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">NASA Open Source Agreement 1.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Naumen">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Naumen Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NBPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Net Boolean Public License v1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NCSA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">University of Illinois/NCSA Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Net-SNMP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Net-SNMP License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NetCDF">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">NetCDF license.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Newsletr">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Newsletr License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NGPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Nethack General Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NLOD-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Norwegian Licence for Open Government Data.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NLPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">No Limit Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Nokia">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Nokia Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NOSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Netizen Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Noweb">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Noweb License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Netscape Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Netscape Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NPOSL-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Non-Profit Open Software License 3.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NRL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">NRL License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NTP">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">NTP License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OCCT-PL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open CASCADE Technology Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OCLC-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">OCLC Research Public License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ODbL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ODC Open Database License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OFL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SIL Open Font License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OFL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SIL Open Font License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OGTSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Group Test Suite License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-1.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v1.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-1.4">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v1.4.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.0.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.0.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.2.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License 2.2.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.4">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.4.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.5.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.6">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.6.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.7">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.7.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OLDAP-2.8">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open LDAP Public License v2.8.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OML">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Market License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OpenSSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">OpenSSL License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSET-PL-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">OSET Public License version 2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Software License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Software License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Software License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSL-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Software License 2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OSL-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Open Software License 3.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PDDL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">ODC Public Domain Dedication &amp; License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PHP-3.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">PHP License v3.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PHP-3.01">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">PHP License v3.01.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Plexus">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Plexus Classworlds License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PostgreSQL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">PostgreSQL License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="psfrag">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">psfrag License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="psutils">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">psutils License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Python-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Python License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Qhull">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Qhull License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Q Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Rdisc">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Rdisc License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RHeCos-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Red Hat eCos Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Reciprocal Public License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RPL-1.5">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Reciprocal Public License 1.5.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RPSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">RealNetworks Public Source License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RSA-MD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">RSA Message-Digest License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RSCPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Ricoh Source Code Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Ruby">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Ruby License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SAX-PD">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sax Public Domain Notice.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Saxpath">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Saxpath License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SCEA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SCEA Shared Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Sendmail">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sendmail License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SGI-B-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SGI Free Software License B v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SGI-B-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SGI Free Software License B v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SGI-B-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SGI Free Software License B v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SimPL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Simple Public License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SISSL-1.2">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sun Industry Standards Source License v1.2.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SISSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sun Industry Standards Source License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Sleepycat">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sleepycat License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SMLNJ">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Standard ML of New Jersey License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SMPPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Secure Messaging Protocol Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SNIA">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SNIA Public License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Spencer-86">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Spencer License 86.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Spencer-94">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Spencer License 94.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Spencer-99">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Spencer License 99.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sun Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SugarCRM-1.1.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">SugarCRM Public License v1.1.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SWL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Scheme Widget Library (SWL) Software License Agreement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TCL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">TCL/TK License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TCP-wrappers">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">TCP Wrappers License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TMate">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">TMate Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TORQUE-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">TORQUE v2.5+ Software License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TOSL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Trusster Open Source License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Unicode-DFS-2015">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Unicode License Agreement - Data Files and Software (2015).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Unicode-DFS-2016">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Unicode License Agreement - Data Files and Software (2016).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Unicode-TOU">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Unicode Terms of Use.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Unlicense">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">The Unlicense.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Universal Permissive License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Vim">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Vim License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VOSTROM">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">VOSTROM Public License for Open Source.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VSL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Vovida Software License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="W3C-19980720">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">W3C Software Notice and License (1998-07-20).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="W3C-20150513">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">W3C Software Notice and Document License (2015-05-13).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="W3C">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">W3C Software Notice and License (2002-12-31).</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Watcom-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Sybase Open Watcom Public License 1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Wsuipa">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Wsuipa License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WTFPL">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Do What The F*ck You Want To Public License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="X11">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">X11 License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Xerox">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Xerox License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XFree86-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">XFree86 License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="xinetd">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">xinetd License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Xnet">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">X.Net License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="xpp">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">XPP License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XSkat">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">XSkat License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YPL-1.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Yahoo! Public License v1.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Yahoo! Public License v1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Zed">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zed License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Zend-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zend License v2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Zimbra-1.3">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zimbra Public License v1.3.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Zimbra-1.4">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zimbra Public License v1.4.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="zlib-acknowledgement">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">zlib/libpng License with Acknowledgement.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Zlib">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">zlib License.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZPL-1.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zope Public License 1.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZPL-2.0">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zope Public License 2.0.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZPL-2.1">
                <xs:annotation>
                    <xs:appinfo>
                        <xforms:label xml:lang="en-US">Zope Public License 2.1.</xforms:label>
                    </xs:appinfo>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <!-- =================================== -->

    <!-- =================================== -->
    <!-- COMPILATION ADDED STUFF -->
    <!-- versionDate="2015-03-18T11:10:06" versionLabel="" compilationDate="2015-03-18T11:10:06" language="nl-NL" deeplinkprefix="http://localhost:8080/art-decor/" deeplinkprefixservices="http://localhost:8877/decor/services/" -->
    <xs:attributeGroup name="ProvenanceCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the dataset, template and valueSet element</xs:documentation>
        </xs:annotation>
        <xs:attribute name="url" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the services URL useful in retrieving the dataset, template, or value set</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ident" type="ShortDescriptiveName" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the project @prefix of the project that defines the dataset, template, or value set</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="referencedFrom" type="ShortDescriptiveName" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the project @prefix of the project that referenced the dataset, template, or value set (normally current project)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="DecorCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the decor root element</xs:documentation>
        </xs:annotation>
        <xs:attribute name="versionDate" type="TimeStampNoTimezoneOrDevelopment" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the date stamp or 'development' for the currently processed project/(version|release)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionLabel" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the label for the currently processed project/(version|release)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="compilationDate" type="TimeStampNoTimezoneOrDevelopment" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the date stamp or 'development' of the compilation process</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="language" type="LanguageCodeOrAsterisk" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains principal used in the compilation process (compilation may be run multiple times, one per language)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deeplinkprefix" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains ART-DECOR URI of the server that ran the compilation.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deeplinkprefixservices" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains DECOR services URI of the server that ran the compilation.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deeplinkprefixservicesfhir" type="xs:anyURI" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains FHIR services URI of the server that ran the compilation.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="DatasetCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the dataset element</xs:documentation>
        </xs:annotation>
        <xs:attribute ref="iddisplay" use="optional"/>
        <xs:attribute name="shortName" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the short name for the dataset</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prefix" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the project prefix for the dataset (ref)</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionId" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the transaction id</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionEffectiveDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the transaction effectiveDate</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionStatusCode" type="ItemStatusCodeLifeCycle" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the transaction statusCode</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionType" type="TransactionType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the transaction type</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionIddisplay" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the readable version of transaction id</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="ProvenanceCompilationAttributes"/>
        <xs:attribute name="inheritanceIssues" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for datasets. DO NOT ADD/EDIT yourself. Contains the number of inheritance issues detected at descendent concept group level. This means the original concept has had structural changes after your dataset inherited from it</xs:documentation>
            </xs:annotation>
        </xs:attribute>

        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>

    <xs:attributeGroup name="DatasetConceptCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the dataset element</xs:documentation>
        </xs:annotation>
        <xs:attribute ref="iddisplay" use="optional"/>
        <xs:attribute ref="refdisplay" use="optional"/>
        <xs:attribute name="shortName" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the short name for the concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attributeGroup ref="MultiplicityRangeOptionalUnknown">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the cardinality for the concept</xs:documentation>
            </xs:annotation>
        </xs:attributeGroup>
        <xs:attribute name="conformance" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the conformance for the concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="isMandatory" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for transaction datasets. DO NOT ADD/EDIT yourself. Contains the mandatory status for the concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attribute name="iddisplay" type="xs:string">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the calculated display name for the value in @id</xs:documentation>
        </xs:annotation>
    </xs:attribute>
    <xs:attribute name="refdisplay" type="xs:string">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the calculated display name for the value in @ref</xs:documentation>
        </xs:annotation>
    </xs:attribute>

    <xs:attributeGroup name="InheritCompilationAttributes">
        <!-- prefix="naw-" datasetId="2.16.840.1.113883.2.4.3.11.60.101.1.1" datasetEffectiveDate="2013-03-25T14:13:00" iType="group" iStatusCode="final" iEffectiveDate="2013-03-25T21:46:30" refdisplay="naw-dataelement-10000" -->
        <xs:attribute name="prefix" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the project prefix for the original concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="datasetId" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the dataset id for the original concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="datasetEffectiveDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the dataset effectiveDate for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="datasetExpirationDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the dataset expirationDate for the original concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="datasetStatusCode" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the dataset statusCode for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="datasetVersionLabel" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the dataset versionLabel for the original concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="iType" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the type for the original concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="iStatusCode" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the statusCode for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="iEffectiveDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the effectiveDate for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="iVersionLabel" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the versionLabel for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="iExpirationDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the expirationDate for the inherited concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalId" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept id for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalStatusCode" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept statusCode for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalEffectiveDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept effectiveDate for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalVersionLabel" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept versionLabel for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalExpirationDate" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept expirationDate for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="originalPrefix" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the concept project prefix for the original concept, if the inherited concept was itself an inheriting/containing concept</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute ref="refdisplay" use="optional"/>
        <xs:attribute name="localInherit" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains a boolean for whether or not the relationship 'lives' in the same project or not</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkedartefactmissing" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process. DO NOT ADD/EDIT yourself. Signals the concept indicated in the inherit was not found</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inheritanceIssues" type="xs:boolean" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for dataset concept inherit. DO NOT ADD/EDIT yourself. Contains a boolean true when inheritance issues are detected in the immediate children of this group level. This means the original concept has had structural changes after the current concept inherited from it</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="inheritExtraConcepts" type="SingleNonNegativeInteger" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for dataset concept inherit. DO NOT ADD/EDIT yourself. Contains an integer >= 0 for how many extra/different immediate child concepts the concept you are inheriting from has compare to your current concept. This means the original concept has had structural changes after the current concept inherited from it</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="currentExtraConcepts" type="SingleNonNegativeInteger" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for dataset concept inherit. DO NOT ADD/EDIT yourself. Contains an integer >= 0 for how many extra/different immediate child concepts the current concept has compared to the concept you are inheriting from. This means the original concept has had structural changes after the current concept inherited from it</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:group name="DatasetConceptCompilationImplementation">
        <xs:sequence>
            <xs:element name="implementation" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the implementation specific info (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="skip" namespace="##any"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationConditions">
        <xs:sequence>
            <xs:element name="condition" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the condition info from a transaction concept</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="skip" namespace="##any"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationTerminologyAssociation">
        <xs:sequence>
            <xs:element ref="terminologyAssociation" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the copied terminology association from the terminology section applicable for this concept (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationIdentifierAssociation">
        <xs:sequence>
            <xs:element ref="identifierAssociation" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the copied identifier association from the ids section applicable for this concept (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationCommunity">
        <xs:sequence>
            <xs:element name="community" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains copied community information for this concept (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationValueSet">
        <xs:sequence>
            <xs:element name="valueSet" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the enahanced value set bound to this concept (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="skip" namespace="##any"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="DatasetConceptCompilationContext">
        <xs:sequence>
            <xs:element name="context" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the contextual information from a transaction concept (TODO: explain in more detail)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="skip" namespace="##any"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:group name="ValueSetCompilationSourceCodeSystem">
        <xs:sequence>
            <xs:element name="sourceCodeSystem" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                    <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains display names for code systems as an optimalization aid in the publication process</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:anyAttribute processContents="skip" namespace="##any"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:group>
    <xs:attributeGroup name="ValueSetCompilationAttributes">
        <xs:attributeGroup ref="ProvenanceCompilationAttributes"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="CodeSystemCompilationAttributes">
        <xs:attributeGroup ref="ProvenanceCompilationAttributes"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="TemplateCompilationAttributes">
        <xs:attributeGroup ref="ProvenanceCompilationAttributes"/>

        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="TemplateRelationshipCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the template/relationship element</xs:documentation>
        </xs:annotation>
        <xs:attribute name="tmid" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the id of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmname" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the name of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmdisplayName" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the displayName of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmeffectiveDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the effectiveDate of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmexpirationDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the expirationDate of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmstatusCode" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the statusCode of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tmversionLabel" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the versionLabel of the template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="url" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the server url for template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the project prefix for template</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkedartefactmissing" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Signals the template indicated in the relationship was not found</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="QuestionnaireRelationshipCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the questionaire/relationship element. when type=DRIV expect @transaction* attributes. When type=ANSW expect @questionnaire* attributes</xs:documentation>
        </xs:annotation>
        <xs:attribute name="transactionId" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the id of the transaction</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionEffectiveDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the effectiveDate of the transaction</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionExpirationDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the expirationDate of the transaction</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionStatusCode" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the statusCode of the transaction</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="transactionVersionLabel" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the versionLabel of the transaction</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireId" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the id of the questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireEffectiveDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the effectiveDate of the questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireExpirationDate" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the expirationDate of the questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireStatusCode" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the statusCode of the questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="questionnaireVersionLabel" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the versionLabel of the questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="url" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the server url for transaction/questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="ident" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Contains the project prefix for transaction/questionnaire</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="linkedartefactmissing" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for relationship. DO NOT ADD/EDIT yourself. Signals the template indicated in the relationship was not found</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:attributeGroup>
    <xs:attributeGroup name="TerminologyAssociationCompilationAttributes">
        <xs:annotation>
            <xs:documentation xml:lang="en-US">Additional compilation attributes on the terminologyAssociation element</xs:documentation>
        </xs:annotation>
        <xs:attribute name="valueSetName" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the displayName of the value set if available else the name</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="valueSetStatusCode" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the status of the valueSet</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="valueSetVersionLabel" use="optional">
            <xs:annotation>
                <xs:documentation xml:lang="en-US">Added in compilation process for releases. DO NOT ADD/EDIT yourself. Contains the versionLabel of the valueSet</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="IdentifierAssociationCompilationAttributes">
        <xs:attribute ref="refdisplay"/>
        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="PublicationAuthorityCompilationAttributes">
        <xs:attribute name="inherited" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>
    <xs:attributeGroup name="CopyrightCompilationAttributes">
        <xs:attribute name="inherited" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="skip"/>
    </xs:attributeGroup>
    <!-- =================================== -->
</xs:schema>
