<?xml version="1.0" encoding="UTF-8"?>
<!--

  Copyright (c) 2013-2016 ARM Limited. All rights reserved.

  SPDX-License-Identifier: Apache-2.0

  Licensed under the Apache License, Version 2.0 (the License); you may
  not use this file except in compliance with the License.
  You may obtain a copy of the License at

  www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an AS IS BASIS, WITHOUT
  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

  $Date:         04. September 2018
  $Revision:     1.3.5

  Version 1.3.5:
  - add CM35P as enumeration value for cpuNameType.

  Version 1.3.4:
  - add dspPresent element to cpuType as SIMD instructions became optional for new processors.

  Version 1.3.3:
  - update file header to Apache 2.0 License
  - add dimableIdentifierType, as a copy of previous identifierType adding "%s",
  - update identifierType to only allow names without %s included.
  - remove enumerationNameType.
  - add headerEnumName to enumerationType and to dimArrayIndexType for peripheral arrays
    overwriting hierarchically generated names
  - add dimName to dimElementGroup. Only valid in <cluster> context, ignored otherwise.

  Version 1.3.2:
  adding dimIndexArray to peripheral-, cluster- and register-array to describe
  enumeration of array indices.

  Version 1.3.1:
  fixed peripheral name element type to identifierType to support %s for peripheral arrays
  added optional protection element to addressBlockType and added p=privileged

  Version 1.3:
  added dim to peripherals to describe an array of peripherals.
  added nesting of clusters to support hierarchical register structures.
  added protection element as part of the registerPropertiesGroup indicating
  special permissions are required for accessing a register.
  CPU Section extended with description of the Secure Attribution Unit.

  Version 1.2:
  Cortex-M7 support items have been added as optional tags for the device header file generation:
  fpuDP, icachePresent, dcachePresent, itcmPresent, dtcmPresent

  Version 1.1:
  For backward compatibility all additional tags have been made optional.
  Extensions may be mandatory for successful device header file generation
  Other changes are related to some restructuring of the schema.

  Note that the memory section has been removed since this would limit the
  reuse of descriptions for a series of devices.
 -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.3">
  <!-- stringType requires a none empty string of a least one character length -->
  <xs:simpleType name="stringType">
    <xs:restriction base="xs:string">
      <xs:minLength value="1"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="descriptionStringType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[\p{IsBasicLatin}\p{IsLatin-1Supplement}]*" />
    </xs:restriction>
  </xs:simpleType>

  <!-- cpuType specifies a selection of Cortex-M and Secure-Cores. This list will get extended as new processors are released -->
  <xs:simpleType name="cpuNameType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="CM0"/>
      <xs:enumeration value="CM0PLUS"/>
      <xs:enumeration value="CM0+"/>
      <xs:enumeration value="CM1"/>
      <xs:enumeration value="SC000"/>
      <xs:enumeration value="CM23"/>
      <xs:enumeration value="CM3"/>
      <xs:enumeration value="CM33"/>
      <xs:enumeration value="CM35P"/>
      <xs:enumeration value="SC300"/>
      <xs:enumeration value="CM4"/>
      <xs:enumeration value="CM7"/>
      <xs:enumeration value="ARMV8MML"/>
      <xs:enumeration value="ARMV8MBL"/>
      <xs:enumeration value="CA5"/>
      <xs:enumeration value="CA7"/>
      <xs:enumeration value="CA8"/>
      <xs:enumeration value="CA9"/>
      <xs:enumeration value="CA15"/>
      <xs:enumeration value="CA17"/>
      <xs:enumeration value="CA53"/>
      <xs:enumeration value="CA57"/>
      <xs:enumeration value="CA72"/>
      <xs:enumeration value="other"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- revisionType specifies the CPU revision format as defined by ARM (rNpM) -->
  <xs:simpleType name="revisionType">
    <xs:restriction base="xs:string">
      <xs:pattern value="r[0-9]*p[0-9]*"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- EndianType pre-defines the tokens for specifying the endianess of the device -->
  <xs:simpleType name="endianType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="little"/>
      <xs:enumeration value="big"/>
      <xs:enumeration value="selectable"/>
      <xs:enumeration value="other"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- dataType pre-defines the tokens in line with CMSIS data type definitions -->
  <xs:simpleType name="dataTypeType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="uint8_t"/>
      <xs:enumeration value="uint16_t"/>
      <xs:enumeration value="uint32_t"/>
      <xs:enumeration value="uint64_t"/>
      <xs:enumeration value="int8_t"/>
      <xs:enumeration value="int16_t"/>
      <xs:enumeration value="int32_t"/>
      <xs:enumeration value="int64_t"/>
      <xs:enumeration value="uint8_t *"/>
      <xs:enumeration value="uint16_t *"/>
      <xs:enumeration value="uint32_t *"/>
      <xs:enumeration value="uint64_t *"/>
      <xs:enumeration value="int8_t *"/>
      <xs:enumeration value="int16_t *"/>
      <xs:enumeration value="int32_t *"/>
      <xs:enumeration value="int64_t *"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- nvicPrioBitsType specifies the integer value range for the number of bits used in NVIC to encode priority levels -->
  <xs:simpleType name="nvicPrioBitsType">
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="2"/>
      <xs:maxInclusive value="8"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- dimableIdentifierType specifies the subset and sequence of characters used for specifying identifiers that may contain %s from dim. -->
  <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
  <xs:simpleType name="dimableIdentifierType">
    <xs:restriction base="xs:string">
      <xs:pattern value="((%s)|(%s)[_A-Za-z]{1}[_A-Za-z0-9]*)|([_A-Za-z]{1}[_A-Za-z0-9]*(\[%s\])?)|([_A-Za-z]{1}[_A-Za-z0-9]*(%s)?[_A-Za-z0-9]*)"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- identifierType specifies the subset and sequence of characters used for specifying identifiers that must not contain %s from dim. -->
  <!-- this is particularly important as these are used in ANSI C Structures during the device header file generation -->
  <xs:simpleType name="identifierType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[_A-Za-z0-9]*"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- V1.3: Protection Access Attribute Strings -->
  <xs:simpleType name="protectionStringType">
    <xs:restriction base="xs:string">
      <!-- s = Secure                      -->
      <!-- n = Non-secure                  -->
      <!-- p = Privileged                  -->
      <xs:pattern value="[snp]"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- V1.3: SAU Access Type -->
  <xs:simpleType name="sauAccessType">
    <xs:restriction base="xs:string">
      <!-- c = non-secure Callable / Secure -->
      <!-- n = Non-secure                   -->
      <xs:pattern value="[cn]"/>
    </xs:restriction>
  </xs:simpleType>

  <!-- dimIndexType specifies the subset and sequence of characters used for specifying the sequence of indices in register arrays -->
  <xs:simpleType name="dimIndexType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]+\-[0-9]+|[A-Z]-[A-Z]|[_0-9a-zA-Z]+(,\s*[_0-9a-zA-Z]+)+"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- scaledNonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format -->
  <xs:simpleType name="scaledNonNegativeInteger">
    <xs:restriction base="xs:string">
      <xs:pattern value="[+]?(0x|0X|#)?[0-9a-fA-F]+[kmgtKMGT]?"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- enumeratedValueDataType specifies the number formats for the values in enumeratedValues -->
  <xs:simpleType name="enumeratedValueDataType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[+]?(((0x|0X)[0-9a-fA-F]+)|([0-9]+)|((#|0b)[01xX]+))"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- accessType specfies the pre-defined tokens for the available accesses -->
  <xs:simpleType name="accessType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="read-only"/>
      <xs:enumeration value="write-only"/>
      <xs:enumeration value="read-write"/>
      <xs:enumeration value="writeOnce"/>
      <xs:enumeration value="read-writeOnce"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- modifiedWriteValuesType specifies the pre-defined tokens for the write side effects -->
  <xs:simpleType name="modifiedWriteValuesType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="oneToClear"/>
      <xs:enumeration value="oneToSet"/>
      <xs:enumeration value="oneToToggle"/>
      <xs:enumeration value="zeroToClear"/>
      <xs:enumeration value="zeroToSet"/>
      <xs:enumeration value="zeroToToggle"/>
      <xs:enumeration value="clear"/>
      <xs:enumeration value="set"/>
      <xs:enumeration value="modify"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- readAction type specifies the pre-defined tokens for read side effects -->
  <xs:simpleType name="readActionType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="clear"/>
      <xs:enumeration value="set"/>
      <xs:enumeration value="modify"/>
      <xs:enumeration value="modifyExternal"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- enumUsageType specifies the pre-defined tokens for selecting what access types an enumeratedValues set is associated with -->
  <xs:simpleType name="enumUsageType">
    <xs:restriction base="xs:token">
      <xs:enumeration value="read"/>
      <xs:enumeration value="write"/>
      <xs:enumeration value="read-write"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- bitRangeType specifies the bit numbers to be restricted values from 0 - 69 -->
  <xs:simpleType name="bitRangeType">
    <xs:restriction base="xs:token">
      <xs:pattern value="\[([0-4])?[0-9]:([0-4])?[0-9]\]"/>
    </xs:restriction>
  </xs:simpleType>
  <!-- writeContraintType specifies how to describe the restriction of the allowed values that can be written to a resource -->
  <xs:complexType name="writeConstraintType">
    <xs:choice>
      <xs:element name="writeAsRead" type="xs:boolean"/>
      <xs:element name="useEnumeratedValues" type="xs:boolean"/>
      <xs:element name="range">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="minimum" type="scaledNonNegativeInteger"/>
            <xs:element name="maximum" type="scaledNonNegativeInteger"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:choice>
  </xs:complexType>
  <!-- addressBlockType specifies the elements to describe an address block -->
  <xs:complexType name="addressBlockType">
    <xs:sequence>
      <xs:element name="offset" type="scaledNonNegativeInteger"/>
      <xs:element name="size" type="scaledNonNegativeInteger"/>
      <xs:element name="usage">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="registers"/>
            <xs:enumeration value="buffer"/>
            <xs:enumeration value="reserved"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <!-- Version 1.3.2: optional access protection for an address block s=secure n=non-secure p=privileged -->
      <xs:element name="protection" type="protectionStringType" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <!-- interruptType specifies how to describe an interrupt associated with a peripheral -->
  <xs:complexType name="interruptType">
    <xs:sequence>
      <xs:element name="name" type="stringType"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="value" type="xs:integer"/>
    </xs:sequence>
  </xs:complexType>
  <!-- register properties group specifies register size, access permission and reset value
       this is used in multiple locations. Settings are inherited downstream. -->
  <xs:group name="registerPropertiesGroup">
    <xs:sequence>
      <xs:element name="size" type="scaledNonNegativeInteger" minOccurs="0"/>
      <xs:element name="access" type="accessType" minOccurs="0"/>
      <!-- V 1.3: extended register access protection -->
      <xs:element name="protection" type="protectionStringType" minOccurs="0"/>
      <xs:element name="resetValue" type="scaledNonNegativeInteger" minOccurs="0"/>
      <xs:element name="resetMask" type="scaledNonNegativeInteger" minOccurs="0"/>
    </xs:sequence>
  </xs:group>
  <!-- bitRangeLsbMsbStyle specifies the bit position of a field within a register
       by specifying the least significant and the most significant bit position -->
  <xs:group name="bitRangeLsbMsbStyle">
    <xs:sequence>
      <xs:element name="lsb"  type="scaledNonNegativeInteger"/>
      <xs:element name="msb"  type="scaledNonNegativeInteger"/>
    </xs:sequence>
  </xs:group>
  <!-- bitRangeOffsetWidthStyle specifies the bit position of a field within a register
       by specifying the least significant bit position and the bitWidth of the field -->
  <xs:group name="bitRangeOffsetWidthStyle">
    <xs:sequence>
      <xs:element name="bitOffset" type="scaledNonNegativeInteger"/>
      <xs:element name="bitWidth" type="scaledNonNegativeInteger" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <!-- dimElementGroup specifies the number of array elements (dim), the address offset
       between to consecutive array elements and an a comma seperated list of strings
       being used for identifying each element in the array -->
  <xs:group name="dimElementGroup">
    <xs:sequence>
      <xs:element name="dim" type="scaledNonNegativeInteger"/>
      <xs:element name="dimIncrement" type="scaledNonNegativeInteger"/>
      <xs:element name="dimIndex" type="dimIndexType" minOccurs="0"/>
      <xs:element name="dimName" type="identifierType" minOccurs="0"/>
      <xs:element name="dimArrayIndex" type="dimArrayIndexType" minOccurs="0"/>
    </xs:sequence>
  </xs:group>

  <xs:complexType name="cpuType">
    <xs:sequence>
      <!-- V1.1: ARM processor name: Cortex-Mx / SCxxx -->
      <xs:element name="name" type="cpuNameType"/>
      <!-- V1.1: ARM defined revision of the cpu -->
      <xs:element name="revision" type="revisionType"/>
      <!-- V1.1: Endian specifies the endianess of the processor/device -->
      <xs:element name="endian" type="endianType"/>
      <!-- V1.1: mpuPresent specifies whether or not a memory protection unit is physically present -->
      <xs:element name="mpuPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.1: fpuPresent specifies whether or not a floating point hardware unit is physically present -->
      <xs:element name="fpuPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.2: fpuDP specifies a double precision floating point hardware unit is physically present-->
      <xs:element name="fpuDP" type="xs:boolean" minOccurs="0"/>
      <!-- V1.3: dspPresent specifies whether the optional SIMD instructions are supported by processor -->
      <xs:element name="dspPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.2: icachePresent specifies that an instruction cache is physically present-->
      <xs:element name="icachePresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.2: dcachePresent specifies that a data cache is physically present-->
      <xs:element name="dcachePresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.2: itcmPresent specifies that an instruction tightly coupled memory is physically present-->
      <xs:element name="itcmPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.2: dtcmPresent specifies that an data tightly coupled memory is physically present-->
      <xs:element name="dtcmPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.1: vtorPresent is used for Cortex-M0+ based devices only. It indicates whether the Vector -->
      <!--       Table Offset Register is implemented in the device or not                              -->
      <xs:element name="vtorPresent" type="xs:boolean" minOccurs="0"/>
      <!-- V1.1: nvicPrioBits specifies the number of bits used by the Nested Vectored Interrupt Controller -->
      <!--       for defining the priority level = # priority levels                                        -->
      <xs:element name="nvicPrioBits" type="scaledNonNegativeInteger"/>
      <!-- V1.1: vendorSystickConfig is set true if a custom system timer is implemented in the device -->
      <!--       instead of the ARM specified SysTickTimer                                             -->
      <xs:element name="vendorSystickConfig" type="xs:boolean"/>
      <!-- V1.3: reports the total number of interrupts implemented by the device (optional) -->
      <xs:element name="deviceNumInterrupts" type="scaledNonNegativeInteger" minOccurs="0"/>
      <!-- V1.3: sauRegions specifies the available number of address regions -->
      <!--       if not specified a value of zero is assumed                  -->
      <xs:element name="sauNumRegions" type="scaledNonNegativeInteger" minOccurs="0"/>
      <!-- V1.3: SAU Regions Configuration (if fully or partially predefined) -->
      <xs:element name="sauRegionsConfig" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="region" minOccurs="0" maxOccurs="unbounded">
              <!-- addressBlockType specifies the elements to describe an address block -->
              <xs:complexType>
                <xs:sequence minOccurs="1"   maxOccurs="unbounded">
                  <xs:element name="base"    type="scaledNonNegativeInteger"/>
                  <xs:element name="limit"   type="scaledNonNegativeInteger"/>
                  <xs:element name="access"  type="sauAccessType"/>
                </xs:sequence>
                <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
                <xs:attribute name="name"    type="xs:string"  use="optional"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
          <xs:attribute name="protectionWhenDisabled" type="protectionStringType" use="optional" default="s"/>
        </xs:complexType>
      </xs:element>
     </xs:sequence>
  </xs:complexType>

  <xs:complexType name="enumeratedValueType">
    <xs:sequence>
      <!-- name is a ANSI C indentifier representing the value (C Enumeration) -->
      <xs:element name="name" type="identifierType"/>
      <!-- description contains the details about the semantics/behavior specified by this value -->
      <xs:element name="description" type="stringType" minOccurs="0"/>
      <xs:choice>
        <xs:element name="value" type="enumeratedValueDataType"/>
        <!-- isDefault specifies the name and description for all values that are not
             specifically described individually -->
        <xs:element name="isDefault" type="xs:boolean"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="enumerationType">
    <xs:sequence>
      <!-- name specfies a reference to this enumeratedValues section for reuse purposes
           this name does not appear in the System Viewer nor the Header File. -->
      <xs:element name="name" type="identifierType" minOccurs="0"/>
      <!-- overrides the hierarchical enumeration type in the device header file. User is responsible for uniqueness across description -->
      <xs:element name="headerEnumName" type="identifierType" minOccurs="0"/>
      <!-- usage specifies whether this enumeration is to be used for read or write or
                                                       (read and write) accesses -->
      <xs:element name="usage" type="enumUsageType" minOccurs="0"/>
      <!-- enumeratedValue derivedFrom=<identifierType> -->
      <xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="derivedFrom" type="identifierType" use="optional"/>
  </xs:complexType>

  <xs:complexType name="dimArrayIndexType">
    <xs:sequence>
      <xs:element name="headerEnumName" type="identifierType" minOccurs="0"/>
      <xs:element name="enumeratedValue" type="enumeratedValueType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="fieldType">
    <xs:sequence>
      <xs:group    ref="dimElementGroup" minOccurs="0"/>
      <!-- name specifies a field's name. The System Viewer and the device header file will
           use the name of the field as identifier -->
      <xs:element name="name" type="dimableIdentifierType"/>
      <!-- description contains reference manual level information about the function and
           options of a field -->
      <xs:element name="description" type="stringType" minOccurs="0"/>
      <!-- alternative specifications of the bit position of the field within the register -->
      <xs:choice minOccurs="1" maxOccurs="1">
        <!-- bit field described by lsb followed by msb tag -->
        <xs:group ref="bitRangeLsbMsbStyle"/>
        <!-- bit field described by bit offset relative to Bit0 + bit width of field -->
        <xs:group ref="bitRangeOffsetWidthStyle"/>
        <!-- bit field described by [<msb>:<lsb>] -->
        <xs:element name="bitRange" type="bitRangeType"/>
      </xs:choice>
      <!-- access describes the predefined permissions for the field. -->
      <xs:element name="access" type="accessType" minOccurs="0"/>
      <!-- predefined description of write side effects -->
      <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
      <!-- writeContstraint specifies the subrange of allowed values -->
      <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
      <!-- readAction specifies the read side effects. -->
      <xs:element name="readAction" type="readActionType" minOccurs="0"/>
      <!-- enumeratedValues derivedFrom=<identifierType> -->
      <xs:element name="enumeratedValues" type="enumerationType" minOccurs="0" maxOccurs="2">
      </xs:element>
    </xs:sequence>
    <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
  </xs:complexType>

  <xs:complexType name="fieldsType">
    <xs:sequence>
      <!-- field derivedFrom=<identifierType> -->
      <xs:element name="field" type="fieldType" minOccurs="1" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="registerType">
    <xs:sequence>
      <xs:group    ref="dimElementGroup" minOccurs="0"/>
      <!-- name specifies the name of the register. The register name is used by System Viewer and
                                     device header file generator to represent a register -->
      <xs:element name="name" type="dimableIdentifierType"/>
      <!-- display name specifies a register name without the restritions of an ANSIS C identifier.
                                     The use of this tag is discouraged because it does not allow consistency between
                                     the System View and the device header file. -->
      <xs:element name="displayName" type="stringType" minOccurs="0"/>
      <!-- description contains a reference manual level description about the register and it's purpose -->
      <xs:element name="description" type="stringType" minOccurs="0"/>
      <xs:choice>
        <!-- alternateGroup specifies the identifier of the subgroup a register belongs to.
                                       This is useful if a register has a different description per mode but a single name -->
        <xs:element name="alternateGroup" type="identifierType" minOccurs="0"/>
        <!-- V1.1: alternateRegister specifies an alternate register description for an address that is
                                       already fully described. In this case the register name must be unique within the peripheral -->
        <xs:element name="alternateRegister" type="dimableIdentifierType" minOccurs="0"/>
      </xs:choice>
      <!-- addressOffset describes the address of the register relative to the baseOffset of the peripheral -->
      <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
      <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
                                     reset value. These default values are inherited to all fields contained in this register -->
      <xs:group    ref="registerPropertiesGroup" minOccurs="0"/>
      <!-- V1.1: dataType specifies a CMSIS compliant native dataType for a register (i.e. signed, unsigned, pointer) -->
      <xs:element name="dataType" type="dataTypeType" minOccurs="0"/>
      <!-- modifiedWriteValues specifies the write side effects -->
      <xs:element name="modifiedWriteValues" type="modifiedWriteValuesType" minOccurs="0"/>
      <!-- writeConstraint specifies the subset of allowed write values -->
      <xs:element name="writeConstraint" type="writeConstraintType" minOccurs="0"/>
      <!-- readAcction specifies the read side effects -->
      <xs:element name="readAction" type="readActionType" minOccurs="0"/>
      <!-- fields section contains all fields that belong to this register -->
      <xs:element name="fields" type="fieldsType" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
  </xs:complexType>

  <!-- V1.1: A cluster is a set of registers that are composed into a C data structure in the device header file -->
  <xs:complexType name="clusterType">
    <xs:sequence>
      <xs:group   ref="dimElementGroup" minOccurs="0"/>
      <xs:element name="name" type="dimableIdentifierType"/>
      <xs:element name="description" type="xs:string"/>
      <!-- V1.1: alternateCluster specifies an alternative description for a cluster address range that is
                 already fully described. In this case the cluster name must be unique within the peripheral -->
      <xs:element name="alternateCluster" type="dimableIdentifierType" minOccurs="0"/>
      <!-- V1.1: headerStructName specifies the name for the cluster structure typedef
                 used in the device header generation instead of the cluster name -->
      <xs:element name="headerStructName" type="identifierType" minOccurs="0"/>
      <xs:element name="addressOffset" type="scaledNonNegativeInteger"/>
      <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
                 reset value. These default values are inherited to all registers contained in this peripheral -->
      <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
      <xs:sequence>
        <xs:choice minOccurs="1" maxOccurs="unbounded">
          <xs:element name="register" type="registerType" minOccurs="0" maxOccurs="unbounded"/>
          <!-- 1.3: nesting of cluster is supported -->
          <xs:element name="cluster" type="clusterType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
      </xs:sequence>
    </xs:sequence>
    <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
  </xs:complexType>

  <!-- the registers section can have an arbitrary list of cluster and register sections -->
  <xs:complexType name="registersType">
    <xs:choice minOccurs="1" maxOccurs="unbounded">
      <xs:element name="cluster" type="clusterType"/>
      <xs:element name="register" type="registerType"/>
    </xs:choice>
  </xs:complexType>

  <xs:complexType name="peripheralType">
    <xs:sequence>
      <!-- 1.3: specify uni-dimensional array of peripheral - requires name="<name>[%s]" -->
      <xs:group    ref="dimElementGroup" minOccurs="0"/>
      <!-- name specifies the name of a peripheral. This name is used for the System View and device header file -->
      <xs:element name="name" type="dimableIdentifierType"/>
      <!-- version specifies the version of the peripheral descriptions -->
      <xs:element name="version" type="stringType" minOccurs="0"/>
      <!-- description provides a high level functional description of the peripheral -->
      <xs:element name="description" type="stringType" minOccurs="0"/>
      <!-- V1.1: alternatePeripheral specifies an alternative description for an address range that is
           already fully by a peripheral described. In this case the peripheral name must be unique within the device description -->
      <xs:element name="alternatePeripheral" type="dimableIdentifierType" minOccurs="0"/>
      <!-- groupName assigns this peripheral to a group of peripherals. This is only used bye the System View -->
      <xs:element name="groupName" type="xs:Name" minOccurs="0"/>
      <!-- prependToName specifies a prefix that is placed in front of each register name of this peripheral.
                         The device header file will show the registers in a C-Struct of the peripheral without the prefix. -->
      <xs:element name="prependToName" type="identifierType" minOccurs="0"/>
      <!-- appendToName is a postfix that is appended to each register name of this peripheral. The device header
                         file will sho the registers in a C-Struct of the peripheral without the postfix -->
      <xs:element name="appendToName" type="identifierType" minOccurs="0"/>
      <!-- V1.1: headerStructName specifies the name for the peripheral structure typedef
                         used in the device header generation instead of the peripheral name -->
      <xs:element name="headerStructName" type="dimableIdentifierType" minOccurs="0"/>
      <!-- disableCondition contains a logical expression based on constants and register or bit-field values
                         if the condition is evaluated to true, the peripheral display will be disabled -->
      <xs:element name="disableCondition" type="stringType" minOccurs="0"/>
      <!-- baseAddress specifies the absolute base address of a peripheral. For derived peripherals it is mandatory
                         to specify a baseAddress. -->
      <xs:element name="baseAddress" type="scaledNonNegativeInteger"/>
      <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
                         reset value. These default values are inherited to all registers contained in this peripheral -->
      <xs:group ref="registerPropertiesGroup" minOccurs="0"/>
      <!-- addressBlock specifies one or more address ranges that are assigned exclusively to this peripheral.
                         derived peripherals may have no addressBlock, however none-derived peripherals are required to specify
                         at least one address block -->
      <xs:element name="addressBlock" type="addressBlockType" minOccurs="0" maxOccurs="unbounded"/>
      <!-- interrupt specifies can specify one or more interrtupts by name, description and value -->
      <xs:element name="interrupt" type="interruptType" minOccurs="0" maxOccurs="unbounded"/>
      <!-- registers section contains all registers owned by the peripheral. In case a peripheral gets derived it does
                        not have its own registers section, hence this section is optional. A unique peripheral without a
                        registers section is not allowed -->
      <xs:element name="registers" type="registersType" minOccurs="0" maxOccurs="1">
      </xs:element>
    </xs:sequence>
    <xs:attribute name="derivedFrom" type="dimableIdentifierType" use="optional"/>
  </xs:complexType>

  <!-- ==================================================== -->
  <!-- The top level element of a description is the device -->
  <!-- ==================================================== -->
  <xs:element name="device" nillable="true">
    <xs:complexType>
      <xs:sequence>
        <!-- V1.1: Vendor Name -->
        <xs:element name="vendor" type="stringType" minOccurs="0"/>
        <!-- V1.1: Vendor ID - a short name for referring to the vendor (e.g. Texas Instruments = TI) -->
        <xs:element name="vendorID" type="identifierType" minOccurs="0"/>
        <!-- name specifies the device name being described -->
        <xs:element name="name" type="identifierType"/>
        <!-- V1.1: series specifies the device series or family name -->
        <xs:element name="series" type="stringType" minOccurs="0"/>
        <!-- version specifies the version of the device description -->
        <xs:element name="version" type="stringType"/>
        <!-- description is a string describing the device features (e.g. memory size, peripherals, etc.) -->
        <xs:element name="description" type="stringType"/>
        <!-- V1.1: licenseText specifies the file header section to be included in any derived file -->
        <xs:element name="licenseText" type="stringType" minOccurs="0"/>
        <!-- V1.1: cpu specifies the details of the processor included in the device -->
        <xs:element name="cpu" type="cpuType" minOccurs="0"/>
        <!-- V1.1: the tag specifies the filename without extension of the CMSIS System Device include file.
             This tag is used by the header file generator for customizing the include statement referencing the
             CMSIS system file within the CMSIS device header file. By default the filename is "system_<device.name>"
             In cases a device series shares a single system header file, the name of the series shall be used
             instead of the individual device name. -->
        <xs:element name="headerSystemFilename" type="identifierType" minOccurs="0"/>
        <!-- V1.1: headerDefinitionPrefix specifies the string being prepended to all names of types defined in
             generated device header file -->
        <xs:element name="headerDefinitionsPrefix" type="identifierType" minOccurs="0"/>
        <!-- addressUnitBits specifies the size of the minimal addressable unit in bits -->
        <xs:element name="addressUnitBits" type="scaledNonNegativeInteger"/>
        <!-- width specifies the number of bits for the maximum single transfer size allowed by the bus interface.
             This sets the maximum size of a single register that can be defined for an address space -->
        <xs:element name="width" type="scaledNonNegativeInteger"/>
        <!-- registerPropertiesGroup elements specify the default values for register size, access permission and
             reset value -->
        <xs:group ref="registerPropertiesGroup" minOccurs="0"/>

        <!-- peripherals is containing all peripherals -->
        <xs:element name="peripherals">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="peripheral" type="peripheralType" minOccurs="1" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <!-- Vendor Extensions: this section captures custom extensions. This section will be ignored by default -->
        <xs:element name="vendorExtensions" minOccurs="0" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
              </xs:any>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="schemaVersion" type="xs:decimal" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

<!-- END OF FILE -->