| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857 |
- <?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: 25. Januar 2017
- $Revision: 1.4.9
- $Project: Schema File for Package Description File Format Specification
- Package file name convention <vendor>.<name>.<version>.pack
- SchemaVersion=1.4
- 25. January 2017: 1.4.9
- - added Toptions attribute for usee in conditions
- 21. November 2016: 1.4.8
- - added support for semantic versioning quality information in ConditionVersionType
- - relaxed schema by making some more elements optional
-
- 07. November 2016: 1.4.7
- - added multiple version types to tighten the schema checking depending on context
- - added new generator sections for exe, web and eclipse based generators
- - added new processor attributes Dtz = Trustzone and Ddsp = DSP instructions for ARMv8-M
- - added new attributes Dtz, Ddsp, Dsecure to conditions
- - added new processors Cortex-M23 and Cortex-M33
- - added new attribute public to books and images to indicate public use of documents and board images
-
- 12. July 2016: 1.4.6
- - refined Dname string pattern restriction
-
- 13. June 2016: 1.4.5
- - added: Punits to ProcessorType
- - added: Punit to DebugType
-
- 26. April 2016: 1.4.4
- - added: attribute defaultResetSequence to DebugType.
- - added: <requirements> section:
- - <packages> defining dependencies between packs
- - <languages> defining required language support e.g. C99
- - <compiler> defining required toolchains
- - added: <create> section used for tool independent project description
- - attributes: name, documentation, condition
- - <target> specifies the board and device targeted by the project
- - <options>
- - <files> specifies the grouped files
- - updated: <algorith> element
- - added attributes: style, parameter and endian
- - updated: <memory> element
- - added attributes: name, access and alias
- - deprecating attribute: id (replaced by name + access)
-
- 03. Dec 2015: 1.4.3
- - adding attribute "sdf" to devices section element debugconfig
-
- 16. Oct 2015: 1.4.1
- - Pname, Dname, Dvariant type changed from xs:string to RestrictedString
- 28. Aug 2015: 1.4.0
- - deprecate devices memory tag attribute id and use
- introduced name and access attributes instead
- - added devices memory tag attribute: alias
- - added devices algorithm tag attribute: style
- - added attribute to define a default component variant
- - added board book category: layout
-
- 29. May 2015
- - added missing Pname attribute to GeneratorDeviceSelectType used for multi processor
- devices
-
- 12. Jan. 2014
- - allow to link a component with a generator via new component attribute
- - generator command extended to deal with more sophisticated command lines / document sequence
-
- -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.4">
- <!-- NonNegativeInteger specifies the format in which numbers are represented in hexadecimal or decimal format -->
- <xs:simpleType name="NonNegativeInteger">
- <xs:restriction base="xs:string">
- <xs:pattern value="[+]?(0x|0X)?[0-9a-fA-F]+"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Registered Device Vendors -->
- <xs:simpleType name="DeviceVendorEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="ABOV Semiconductor:126"/>
- <xs:enumeration value="Actel:56"/>
- <xs:enumeration value="Active-Semi:140"/>
- <xs:enumeration value="Altera:85"/>
- <xs:enumeration value="Altium:65"/>
- <xs:enumeration value="Ambiq Micro:120"/>
- <xs:enumeration value="Amiccom:147"/>
- <xs:enumeration value="Analog Devices:1"/>
- <xs:enumeration value="ARM:82"/>
- <xs:enumeration value="ARM CMSIS:109"/>
- <xs:enumeration value="ArteryTek:143"/>
- <xs:enumeration value="Atmel:3"/>
- <xs:enumeration value="CSR:118"/>
- <xs:enumeration value="Cypress:19"/>
- <xs:enumeration value="Dialog Semiconductor:113"/>
- <xs:enumeration value="Dolphin:57"/>
- <xs:enumeration value="Domosys:26"/>
- <xs:enumeration value="Elmos Semiconductor AG:138"/>
- <xs:enumeration value="Ember:98"/>
- <xs:enumeration value="Energy Micro:97"/>
- <xs:enumeration value="EnOcean:91"/>
- <xs:enumeration value="Evatronix:64"/>
- <xs:enumeration value="Generic:5"/>
- <xs:enumeration value="GigaDevice:123"/>
- <xs:enumeration value="HDSC:145"/>
- <xs:enumeration value="Holtek:106"/>
- <xs:enumeration value="Hynix Semiconductor:6"/>
- <xs:enumeration value="Hyundai:35"/>
- <xs:enumeration value="Infineon:7"/>
- <xs:enumeration value="Kionix:127"/>
- <xs:enumeration value="Lapis Semiconductor:10"/>
- <xs:enumeration value="Linear Technology:136"/>
- <xs:enumeration value="Luminary Micro:76"/>
- <xs:enumeration value="Maxim:23"/>
- <xs:enumeration value="MediaTek:129"/>
- <xs:enumeration value="MegaChips:128"/>
- <xs:enumeration value="Mentor Graphics Co.:24"/>
- <xs:enumeration value="Microchip:3"/>
- <xs:enumeration value="Micronas:30"/>
- <xs:enumeration value="Microsemi:112"/>
- <xs:enumeration value="Milandr:99"/>
- <xs:enumeration value="MindMotion:132"/>
- <xs:enumeration value="NetSilicon:67"/>
- <xs:enumeration value="Nordic Semiconductor:54"/>
- <xs:enumeration value="Nuvoton:18"/>
- <xs:enumeration value="NXP:11"/>
- <xs:enumeration value="OKI SEMICONDUCTOR CO.,LTD.:108"/>
- <xs:enumeration value="ONSemiconductor:141"/>
- <xs:enumeration value="Panasonic:131"/>
- <xs:enumeration value="Realtek Semiconductor:124"/>
- <xs:enumeration value="Redpine Signals:125"/>
- <xs:enumeration value="RelChip:146"/>
- <xs:enumeration value="Renesas:117"/>
- <xs:enumeration value="ROHM:103"/>
- <xs:enumeration value="Samsung:47"/>
- <xs:enumeration value="Silergy Corp:139"/>
- <xs:enumeration value="Silicon Labs:21"/>
- <xs:enumeration value="SONiX:110"/>
- <xs:enumeration value="Spansion:100"/>
- <xs:enumeration value="STMicroelectronics:13"/>
- <xs:enumeration value="Sunrise Micro Devices:121"/>
- <xs:enumeration value="Synwit:144"/>
- <xs:enumeration value="TI:16"/>
- <xs:enumeration value="Texas Instruments:16"/>
- <xs:enumeration value="Toshiba:92"/>
- <xs:enumeration value="Triad Semiconductor:104"/>
- <xs:enumeration value="Vorago:137"/>
- <xs:enumeration value="WIZnet:122"/>
- <xs:enumeration value="Xinnova:135"/>
- <xs:enumeration value="Zilog:89"/>
- <!-- deprecated: do not use -->
- <xs:enumeration value="Freescale:78"/>
- <xs:enumeration value="Freescale Semiconductor:78"/>
- <xs:enumeration value="NXP (founded by Philips):11"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- AlgorithmStyleType: allow support of different flash programming algorithm styles -->
- <xs:simpleType name="AlgorithmStyleType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Keil"/>
- <xs:enumeration value="IAR"/>
- <xs:enumeration value="CMSIS"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Class Name Type: specify your own Class in taxonomy -->
- <xs:simpleType name="CclassType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- <xs:pattern value="\S(.*\S)?"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Group Name Type (no leading or trailing spaces allowed) -->
- <xs:simpleType name="CgroupType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- <xs:pattern value="\S(.*\S)?"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Sub Name Type -->
- <xs:simpleType name="CsubType">
- <xs:restriction base="xs:string">
- <xs:minLength value="0"/>
- <xs:maxLength value="32"/>
- <!-- <xs:pattern value="\S(.*\S)?"></xs:pattern> not backward compatible -->
- </xs:restriction>
- </xs:simpleType>
- <!-- Component Variant Name Type -->
- <xs:simpleType name="CvariantType">
- <xs:restriction base="xs:string">
- <xs:minLength value="3"/>
- <xs:maxLength value="32"/>
- <xs:pattern value="\S(.*\S)?"></xs:pattern>
- </xs:restriction>
- </xs:simpleType>
- <!-- AccessType (added in 1.4.4) -->
- <xs:simpleType name="AccessType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[rwxpsnc]+"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- Processor Type -->
- <xs:complexType name="ProcessorType">
- <!-- Pname defines an identifier for a specific processor in a multi-processor devices -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- Punits specifies the number of processing units in a symmetric multi-processor core -->
- <xs:attribute name="Punits" type="InstancesType"/>
- <!-- Dcore specifies the processor from a list of supported processors -->
- <xs:attribute name="Dcore" type="DcoreEnum"/>
- <!-- Dfpu specifies the hardware floating point unit -->
- <xs:attribute name="Dfpu" type="DfpuEnum"/>
- <!-- Dmpu specifies the memory protection unit -->
- <xs:attribute name="Dmpu" type="DmpuEnum"/>
- <!-- Dtz specifies the processor TrustZone support -->
- <xs:attribute name="Dtz" type="DtzEnum"/>
- <!-- Tdsp specifies the processor support for DSP instructions -->
- <xs:attribute name="Ddsp" type="DdspEnum"/>
- <!-- Dendian specifies the endianess supported by the processor -->
- <xs:attribute name="Dendian" type="DendianEnum"/>
- <!-- Dclock specifies the maximum core clock frequency -->
- <xs:attribute name="Dclock" type="xs:unsignedInt"/>
- <!-- DcoreVersion specifies the revision of the processor -->
- <xs:attribute name="DcoreVersion" type="xs:string"/>
- </xs:complexType>
- <!-- Compile Type: -->
- <xs:complexType name="CompileType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- CMSIS-CORE device header file (sets compiler include path) -->
- <xs:attribute name="header" type="xs:string"/>
- <!-- Device specific preprocessor define (sets preprocessor define -->
- <xs:attribute name="define" type="xs:string"/>
- <!-- Processor instance specific preprocessor define (sets preprocessor define on the commandline) -->
- <xs:attribute name="Pdefine" type="xs:string"/>
- </xs:complexType>
- <!-- DebugVarsType -->
- <xs:complexType name="DebugVarsType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="configfile" type="xs:string" use="optional"/>
- <xs:attribute name="version" type="ComponentVersionType" use="optional"/>
- <xs:attribute name="Pname" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- DebugProtocolEnum -->
- <xs:simpleType name="DebugProtocolEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="jtag"/>
- <xs:enumeration value="cjtag"/>
- <xs:enumeration value="swd"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- DebugConfigType -->
- <xs:complexType name="DebugConfigType">
- <xs:attribute name="default" type="DebugProtocolEnum" use="optional" default="swd"/>
- <xs:attribute name="clock" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="swj" type="xs:boolean" use="optional"/>
- <!-- Debugger System Description File -->
- <xs:attribute name="sdf" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- JtagType -->
- <xs:complexType name="JtagType">
- <xs:attribute name="tapindex" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="idcode" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="targetsel" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="irlen" type="xs:unsignedInt" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SwdType -->
- <xs:complexType name="SwdType">
- <xs:attribute name="idcode" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="targetsel" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- DebugPortType -->
- <xs:complexType name="DebugPortType">
- <xs:sequence>
- <xs:element name="jtag" type="JtagType" minOccurs="0" maxOccurs="1"/>
- <xs:element name="swd" type="SwdType" minOccurs="0" maxOccurs="1"/>
- </xs:sequence>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- DataPatchAccessTypeEnum enumeration type -->
- <xs:simpleType name="DataPatchAccessTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="DP"/>
- <xs:enumeration value="AP"/>
- <xs:enumeration value="Mem"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- ExpressionType -->
- <xs:simpleType name="ExpressionType">
- <xs:restriction base="xs:string"/>
- </xs:simpleType>
- <!-- DataPatchType -->
- <xs:complexType name="DataPatchType">
- <xs:attribute name="type" type="DataPatchAccessTypeEnum" use="optional"/>
- <xs:attribute name="address" type="NonNegativeInteger" use="required"/>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="__ap" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="value" type="NonNegativeInteger" use="required"/>
- <xs:attribute name="mask" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- BlockType -->
- <xs:complexType name="SequenceBlockType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="atomic" type="xs:boolean" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <!-- ControlType -->
- <xs:complexType name="SequenceControlType">
- <xs:sequence>
- <xs:group ref="SequenceElementGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="if" type="xs:string" use="optional"/>
- <xs:attribute name="while" type="ExpressionType" use="optional"/>
- <xs:attribute name="timeout" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SequenceElementType -->
- <xs:group name="SequenceElementGroup">
- <xs:choice>
- <xs:element name="block" type="SequenceBlockType"/>
- <xs:element name="control" type="SequenceControlType"/>
- </xs:choice>
- </xs:group>
- <!-- SequenceType -->
- <xs:complexType name="SequenceType">
- <xs:sequence>
- <xs:group ref="SequenceElementGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:attribute name="disable" type="xs:boolean" use="optional"/>
- <xs:attribute name="info" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SequencesType -->
- <xs:complexType name="SequencesType">
- <xs:sequence>
- <xs:element name="sequence" type="SequenceType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
-
- <!-- DebugType -->
- <xs:complexType name="DebugType">
- <xs:sequence>
- <xs:element name="datapatch" type="DataPatchType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="__dp" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="__ap" type="xs:unsignedInt" use="optional"/> <!-- access port index -->
- <xs:attribute name="address" type="NonNegativeInteger" use="optional"/> <!-- CPU debug block base address -->
- <xs:attribute name="svd" type="xs:string" use="optional"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:attribute name="Punit" type="xs:unsignedInt" use="optional"/>
- <xs:attribute name="defaultResetSequence" type="xs:string" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- SerialWireType -->
- <xs:complexType name="SerialWireType">
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- TracePortType -->
- <xs:complexType name="TracePortType">
- <xs:attribute name="width" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="skip"/>
- </xs:complexType>
- <!-- TraceBufferType -->
- <xs:complexType name="TraceBufferType">
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <xs:anyAttribute processContents="skip"/>
- </xs:complexType>
- <!-- TraceType -->
- <xs:complexType name="TraceType">
- <xs:sequence>
- <xs:element name="serialwire" type="SerialWireType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="traceport" type="TracePortType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="tracebuffer" type="TraceBufferType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:anyAttribute processContents="lax"/>
- </xs:complexType>
- <!-- Memory Type-->
- <xs:complexType name="MemoryType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- id specifies the enumerated ID of memory (deprecated in 1.4.4) -->
- <xs:attribute name="id" type="MemoryIDTypeEnum" use="optional"/>
- <!-- name specifies an identifier being use to refer to this memory range description (added in 1.4.4) -->
- <xs:attribute name="name" type="RestrictedString" use="optional"/>
- <!-- start specifies the base address of the memory -->
- <xs:attribute name="start" type="NonNegativeInteger" use="required"/>
- <!-- size specifies the size of the memory -->
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- <!-- access: specifies the access permissions of the memory (added in 1.4.4) -->
- <xs:attribute name="access" type="AccessType" use="optional" default="r"/>
- <!-- alias: reference to another memory by 'name' to express that the same physical memory is mapped at another address (added in 1.4.4) -->
- <xs:attribute name="alias" type="RestrictedString" use="optional"/>
- <!-- !!! deprecated, do not use / ignore !!! specifies whether the memory shall be 0 initialized -->
- <xs:attribute name="init" type="xs:boolean" use="optional" default="0"/>
- <!-- specifies whether the memory is used as default by linker -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- <!-- specifies whether the memory shall be used for the startup by linker -->
- <xs:attribute name="startup" type="xs:boolean" use="optional" default="0"/>
- </xs:complexType>
- <!-- Algorithm Type -->
- <xs:complexType name="AlgorithmType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- name specifies the path and filename of the Flash Programming Algorithm -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- start specifies the base address of the memory range that gets programmed -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- size specifies the size of the memory range that gets programmed -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- RAMstart specifies the base address in RAM from where the algorithm is executed -->
- <xs:attribute name="RAMstart" type="NonNegativeInteger" use="optional"/>
- <!-- RAMsize specifies the available RAM for executing the algorithm -->
- <xs:attribute name="RAMsize" type="NonNegativeInteger" use="optional"/>
- <!-- if default is set the algorithm will be configured for any new project -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- <!-- style attribute: specifies the programming algorithm format (added in 1.4.4) -->
- <xs:attribute name="style" type="AlgorithmStyleType" use="optional" default="Keil"/>
- <!-- parameter attribute: parmeter passed on algorithm invocation (added in 1.4.4) -->
- <xs:attribute name="parameter" type="xs:string" use="optional"/>
- <!-- endian attribute: specifies the endianess of the algorithm (added in 1.4.4) -->
- <xs:attribute name="endian" type="DendianEnum" use="optional" default="Little-endian"/>
- </xs:complexType>
- <!-- Book Type -->
- <xs:complexType name="BookType">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- <!-- name specifies the path and filename of the document -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- title specifies the string displayed for this document -->
- <xs:attribute name="title" type="xs:string" use="required"/>
- <!-- if true, the vendor gives permission for this file being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- <!-- Description Type-->
- <xs:complexType name="DescriptionType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- Device Feature Type -->
- <xs:complexType name="DeviceFeatureType">
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <!-- <xs:attribute name="type" type="DeviceFeatureTypeEnum" use="required"/> -->
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="n" type="xs:decimal" use="optional"/>
- <xs:attribute name="m" type="xs:decimal" use="optional"/>
- <xs:attribute name="name" type="xs:string" use="optional"/>
- <!-- deprecated, only for backwards compatibility -->
- <xs:attribute name="count" type="xs:int" use="optional"/>
- </xs:complexType>
- <!-- Board Feature Type -->
- <xs:complexType name="BoardFeatureType">
- <!-- <xs:attribute name="type" type="BoardFeatureTypeEnum" use="required"/> -->
- <xs:attribute name="type" type="xs:string" use="required"/>
- <xs:attribute name="n" type="xs:decimal" use="optional"/>
- <xs:attribute name="m" type="xs:decimal" use="optional"/>
- <xs:attribute name="name" type="xs:string" use="optional"/>
- </xs:complexType>
-
- <!-- Environment Type -->
- <xs:complexType name="EnvironmentType">
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <!-- name identifies the environment (e.g. "uv" for uVision ) this setting belongs to -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Pname identifies the processor this setting belongs to -->
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- <xs:anyAttribute></xs:anyAttribute>
- </xs:complexType>
- <!-- Default Device Properties Group -->
- <xs:group name="DefaultDevicePropertiesGroup">
- <!-- multi-core devices have unique Pname attribute. One entry per processor and level -->
- <xs:choice>
- <xs:element name="compile" type="CompileType" />
- <xs:element name="memory" type="MemoryType" />
- <xs:element name="algorithm" type="AlgorithmType" />
- <xs:element name="book" type="BookType" />
- <xs:element name="description" type="DescriptionType" />
- <xs:element name="feature" type="DeviceFeatureType" />
- <xs:element name="environment" type="EnvironmentType" />
- <xs:element name="debugport" type="DebugPortType" />
- <xs:element name="debug" type="DebugType" />
- <xs:element name="trace" type="TraceType" />
- <xs:element name="debugvars" type="DebugVarsType" />
- <xs:element name="sequences" type="SequencesType" />
- </xs:choice>
- </xs:group>
- <!-- Device Properties Group -->
- <xs:group name="DevicePropertiesGroup">
- <!-- multi-core devices have unique Pname attribute. One entry per processor and level -->
- <xs:sequence>
- <xs:element name="processor" type="ProcessorType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="debugconfig" type="DebugConfigType" minOccurs="0" maxOccurs="1"/>
- <xs:group ref="DefaultDevicePropertiesGroup" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:group>
- <xs:complexType name="DeviceType">
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <!-- Variant Level begin-->
- <xs:element name="variant" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- </xs:sequence>
- <xs:attribute name="Dvariant" type="RestrictedStringDname" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Variant Level end -->
- </xs:sequence>
- <xs:attribute name="Dname" type="RestrictedStringDname" use="required"/>
- <!-- <xs:attributeGroup ref="DefaultDeviceAttributesGroup"/> -->
- </xs:complexType>
- <!-- Dcore enumeration type -->
- <xs:simpleType name="DcoreEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="SC000"/>
- <xs:enumeration value="SC300"/>
- <xs:enumeration value="Cortex-M0"/>
- <xs:enumeration value="Cortex-M0+"/>
- <xs:enumeration value="Cortex-M1"/>
- <xs:enumeration value="Cortex-M23"/>
- <xs:enumeration value="Cortex-M3"/>
- <xs:enumeration value="Cortex-M33"/>
- <xs:enumeration value="Cortex-M4"/>
- <xs:enumeration value="Cortex-M7"/>
- <xs:enumeration value="ARMV8MBL"/>
- <xs:enumeration value="ARMV8MML"/>
- <xs:enumeration value="Cortex-R4"/>
- <xs:enumeration value="Cortex-R5"/>
- <xs:enumeration value="Cortex-R7"/>
- <xs:enumeration value="Cortex-R8"/>
- <xs:enumeration value="Cortex-A5"/>
- <xs:enumeration value="Cortex-A7"/>
- <xs:enumeration value="Cortex-A8"/>
- <xs:enumeration value="Cortex-A9"/>
- <xs:enumeration value="Cortex-A15"/>
- <xs:enumeration value="Cortex-A17"/>
- <xs:enumeration value="Cortex-A53"/>
- <xs:enumeration value="Cortex-A57"/>
- <xs:enumeration value="Cortex-A72"/>
- <xs:enumeration value="Cortex-A73"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- DeviceFeatureTypeEnum -->
- <xs:simpleType name="DeviceFeatureTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Crypto"/>
- <xs:enumeration value="NVIC"/>
- <xs:enumeration value="DMA"/>
- <xs:enumeration value="RNG"/>
- <xs:enumeration value="CoreOther"/>
- <xs:enumeration value="ExtBus"/>
- <xs:enumeration value="Memory"/>
- <xs:enumeration value="MemoryOther"/>
- <xs:enumeration value="XTAL"/>
- <xs:enumeration value="IntRC"/>
- <xs:enumeration value="PLL"/>
- <xs:enumeration value="RTC"/>
- <xs:enumeration value="ClockOther"/>
- <xs:enumeration value="PowerMode"/>
- <xs:enumeration value="VCC"/>
- <xs:enumeration value="Consumption"/>
- <xs:enumeration value="PowerOther"/>
- <xs:enumeration value="BGA"/>
- <xs:enumeration value="CSP"/>
- <xs:enumeration value="PLCC"/>
- <xs:enumeration value="QFN"/>
- <xs:enumeration value="QFP"/>
- <xs:enumeration value="SOP"/>
- <xs:enumeration value="DIP"/>
- <xs:enumeration value="PackageOther"/>
- <xs:enumeration value="IOs"/>
- <xs:enumeration value="ExtInt"/>
- <xs:enumeration value="Temp"/>
- <xs:enumeration value="ADC"/>
- <xs:enumeration value="DAC"/>
- <xs:enumeration value="TempSens"/>
- <xs:enumeration value="AnalogOther"/>
- <xs:enumeration value="PWM"/>
- <xs:enumeration value="Timer"/>
- <xs:enumeration value="WDT"/>
- <xs:enumeration value="TimerOther"/>
- <xs:enumeration value="MPSerial"/>
- <xs:enumeration value="CAN"/>
- <xs:enumeration value="ETH"/>
- <xs:enumeration value="I2C"/>
- <xs:enumeration value="I2S"/>
- <xs:enumeration value="LIN"/>
- <xs:enumeration value="SDIO"/>
- <xs:enumeration value="SPI"/>
- <xs:enumeration value="UART"/>
- <xs:enumeration value="USART"/>
- <xs:enumeration value="USBD"/>
- <xs:enumeration value="USBH"/>
- <xs:enumeration value="USBOTG"/>
- <xs:enumeration value="ComOther"/>
- <xs:enumeration value="Camera"/>
- <xs:enumeration value="GLCD"/>
- <xs:enumeration value="LCD"/>
- <xs:enumeration value="Touch"/>
- <xs:enumeration value="Other"/>
- <!-- deprecated, only for backwards compatibility -->
- <xs:enumeration value="I/O"/>
- <xs:enumeration value="D/A"/>
- <xs:enumeration value="A/D"/>
- <xs:enumeration value="Com"/>
- <xs:enumeration value="USB"/>
- <xs:enumeration value="Package"/>
- <xs:enumeration value="Backup"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- BoardFeatureTypeEnum -->
- <xs:simpleType name="BoardFeatureTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="ODbg"/>
- <xs:enumeration value="XTAL"/>
- <xs:enumeration value="PWR"/>
- <xs:enumeration value="PWR"/>
- <xs:enumeration value="PWRSock"/>
- <xs:enumeration value="Batt"/>
- <xs:enumeration value="Curr"/>
- <xs:enumeration value="CoreOther"/>
- <xs:enumeration value="RAM"/>
- <xs:enumeration value="ROM"/>
- <xs:enumeration value="Memory"/>
- <xs:enumeration value="MemCard"/>
- <xs:enumeration value="MemoryOther"/>
- <xs:enumeration value="DIO"/>
- <xs:enumeration value="AIO"/>
- <xs:enumeration value="Proto"/>
- <xs:enumeration value="USB"/>
- <xs:enumeration value="ETH"/>
- <xs:enumeration value="SPI"/>
- <xs:enumeration value="I2C"/>
- <xs:enumeration value="RS232"/>
- <xs:enumeration value="RS422"/>
- <xs:enumeration value="RS485"/>
- <xs:enumeration value="CAN"/>
- <xs:enumeration value="IrDA"/>
- <xs:enumeration value="LineIn"/>
- <xs:enumeration value="LineOut"/>
- <xs:enumeration value="MIC"/>
- <xs:enumeration value="Edge"/>
- <xs:enumeration value="ConnOther"/>
- <xs:enumeration value="Button"/>
- <xs:enumeration value="Poti"/>
- <xs:enumeration value="Joystick"/>
- <xs:enumeration value="Touch"/>
- <xs:enumeration value="ContOther"/>
- <xs:enumeration value="Accelerometer"/>
- <xs:enumeration value="Gyro"/>
- <xs:enumeration value="Compass"/>
- <xs:enumeration value="TempSens"/>
- <xs:enumeration value="PressSens"/>
- <xs:enumeration value="LightSens"/>
- <xs:enumeration value="SensOther"/>
- <xs:enumeration value="CustomFF"/>
- <xs:enumeration value="ArduinoFF"/>
- <xs:enumeration value="FreedomFF"/>
- <xs:enumeration value="TowerFF"/>
- <xs:enumeration value="LED"/>
- <xs:enumeration value="Camera"/>
- <xs:enumeration value="LCD"/>
- <xs:enumeration value="GLCD"/>
- <xs:enumeration value="Speaker"/>
- <xs:enumeration value="Other"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- eraseTypeEnum -->
- <xs:simpleType name="EraseTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="sector"/>
- <xs:enumeration value="full"/>
- <xs:enumeration value="no"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- MemoryIDTypeEnum -->
- <xs:simpleType name="MemoryIDTypeEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="IRAM1"/>
- <xs:enumeration value="IRAM2"/>
- <xs:enumeration value="IRAM3"/>
- <xs:enumeration value="IRAM4"/>
- <xs:enumeration value="IRAM5"/>
- <xs:enumeration value="IRAM6"/>
- <xs:enumeration value="IRAM7"/>
- <xs:enumeration value="IRAM8"/>
- <xs:enumeration value="IROM1"/>
- <xs:enumeration value="IROM2"/>
- <xs:enumeration value="IROM3"/>
- <xs:enumeration value="IROM4"/>
- <xs:enumeration value="IROM5"/>
- <xs:enumeration value="IROM6"/>
- <xs:enumeration value="IROM7"/>
- <xs:enumeration value="IROM8"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dendian enumeration type -->
- <xs:simpleType name="DendianEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Little-endian"/>
- <xs:enumeration value="Big-endian"/>
- <xs:enumeration value="Configurable"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dfpu enumeration type -->
- <xs:simpleType name="DfpuEnum">
- <xs:restriction base="xs:token">
- <!-- core has FPU (type of FPU depends on Dcore) -->
- <xs:enumeration value="FPU"/>
- <xs:enumeration value="1"/>
- <!-- core has no FPU -->
- <xs:enumeration value="NO_FPU"/>
- <xs:enumeration value="0"/>
- <!-- single precision FPU -->
- <xs:enumeration value="SP_FPU"/>
- <!-- double precision FPU -->
- <xs:enumeration value="DP_FPU"/>
- <!-- any -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dmpu enumeration type -->
- <xs:simpleType name="DmpuEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="MPU"/>
- <xs:enumeration value="NO_MPU"/>
- <xs:enumeration value="0"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dtz TrustZone enumeration type -->
- <xs:simpleType name="DtzEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="TZ"/>
- <xs:enumeration value="NO_TZ"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="0"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Dsecure enumeration type -->
- <xs:simpleType name="DsecureEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="Secure"/>
- <xs:enumeration value="Non-secure"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="0"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Ddsp DSP extensions enumeration type -->
- <xs:simpleType name="DdspEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="DSP"/>
- <xs:enumeration value="NO_DSP"/>
- <xs:enumeration value="1"/>
- <xs:enumeration value="0"/>
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- file category type -->
- <xs:simpleType name="FileCategoryType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="doc"/>
- <xs:enumeration value="header"/>
- <xs:enumeration value="include"/>
- <xs:enumeration value="library"/>
- <xs:enumeration value="object"/>
- <xs:enumeration value="source"/>
- <xs:enumeration value="sourceC"/>
- <xs:enumeration value="sourceCpp"/>
- <xs:enumeration value="sourceAsm"/>
- <xs:enumeration value="linkerScript"/>
- <xs:enumeration value="utility"/>
- <xs:enumeration value="image"/>
- <xs:enumeration value="other"/>
- <xs:enumeration value="preInclude"/> <!-- restricted to a single file in CPDSC file -->
- </xs:restriction>
- </xs:simpleType>
- <!-- file attribute type -->
- <xs:simpleType name="FileAttributeType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="config"/>
- <xs:enumeration value="copy"/>
- <xs:enumeration value="template"/>
- <xs:enumeration value="interface"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- compiler toolchain enumeration -->
- <xs:simpleType name="CompilerEnumType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="GCC"/>
- <xs:enumeration value="ARMCC"/>
- <xs:enumeration value="IAR"/>
- <xs:enumeration value="Tasking"/>
- <xs:enumeration value="GHS"/>
- <xs:enumeration value="Cosmic"/>
- <xs:enumeration value="G++"/> <!-- Code Sourcery -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- compiler specific options/mode -->
- <xs:simpleType name="CompilerOptionsEnumType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="AC5"/>
- <xs:enumeration value="AC6"/>
- <xs:enumeration value="AC6LTO"/>
- </xs:restriction>
- </xs:simpleType>
-
- <!-- compiler output enumeration -->
- <xs:simpleType name="CompilerOutputType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="exe"/> <!-- executable -->
- <xs:enumeration value="lib"/> <!-- library -->
- <xs:enumeration value="*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="FilterType">
- <xs:attribute name="Dfamily" type="xs:string"/> <!-- deprecated as they are too weak for filtering -->
- <xs:attribute name="DsubFamily" type="xs:string"/> <!-- deprecated as tehy are too weak for filtering -->
- <xs:attribute name="Dvariant" type="xs:string"/>
- <xs:attribute name="Dvendor" type="DeviceVendorEnum"/>
- <xs:attribute name="Dname" type="xs:string"/> <!-- can contain wildcards ?* in condition -->
- <xs:attribute name="Dcore" type="DcoreEnum"/>
- <xs:attribute name="Dfpu" type="DfpuEnum"/>
- <xs:attribute name="Dmpu" type="DmpuEnum"/>
- <xs:attribute name="Dtz" type="DtzEnum"/>
- <xs:attribute name="Ddsp" type="DdspEnum"/>
- <xs:attribute name="Dsecure" type="DsecureEnum"/>
- <xs:attribute name="Dendian" type="DendianEnum"/>
- <xs:attribute name="Pname" type="RestrictedString"/>
- <xs:attribute name="Cvendor" type="xs:string"/>
- <xs:attribute name="Cbundle" type="xs:string"/>
- <xs:attribute name="Cclass" type="CclassType"/>
- <xs:attribute name="Cgroup" type="CgroupType"/>
- <xs:attribute name="Csub" type="CsubType"/>
- <xs:attribute name="Cvariant" type="CvariantType"/>
- <xs:attribute name="Cversion" type="ConditionVersionType"/>
- <xs:attribute name="Capiversion" type="ConditionVersionType"/>
- <xs:attribute name="Tcompiler" type="CompilerEnumType"/>
- <!-- Toptions can only be used in combination with Tcompiler and the strings are predefined by the specification -->
- <xs:attribute name="Toptions" type="CompilerOptionsEnumType"/>
- <xs:attribute name="Toutput" type="CompilerOutputType"/>
- <xs:attribute name="condition" type="xs:string"/>
- </xs:complexType>
- <!-- taxonomy description type definition -->
- <xs:complexType name="TaxonomyDescriptionType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="Cclass" type="CclassType" use="required"/> <!-- Class the description is associated with -->
- <xs:attribute name="Cgroup" type="CgroupType" use="optional"/> <!-- Group the description is associated with -->
- <xs:attribute name="doc" type="xs:string" use="optional"/> <!-- link to documentation for the :Class:[Group] -->
- <xs:attribute name="generator" type="xs:string" use="optional"/> <!-- link a generator to a taxonomy -->
- <!-- if true, the vendor gives permission for the doc file above being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="TaxonomyType">
- <xs:sequence>
- <xs:element name="description" type="TaxonomyDescriptionType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- API type definition -->
- <xs:complexType name="ApiType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="exclusive" type="xs:boolean" use="optional" default="1"/>
- <xs:attribute name="Capiversion" type="ComponentVersionType" use="optional"/>
- </xs:complexType>
- <xs:complexType name="ApisType">
- <xs:sequence>
- <xs:element name="api" type="ApiType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ConditionType">
- <xs:sequence>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="accept" type="FilterType"/>
- <xs:element name="require" type="FilterType"/>
- <xs:element name="deny" type="FilterType"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute name="id" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="ConditionsType">
- <xs:sequence>
- <xs:element name="condition" type="ConditionType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ComponentCategoryType">
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cbundle" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="optional"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="ComponentVersionType" use="optional"/>
- <xs:attribute name="Capiversion" type="ComponentVersionType" use="optional"/>
- <xs:attribute name="instances" type="InstancesType" use="optional" default="1"/>
- </xs:complexType>
- <xs:complexType name="ExampleProjectType">
- <xs:sequence>
- <xs:element name="environment" maxOccurs="unbounded">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="load" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="BoardReferenceType">
- <xs:attribute name="name" type="xs:string" use="required"/> <!-- refers to Board Description by name -->
- <xs:attribute name="vendor" type="xs:string" use="required"/> <!-- refers to Board Description by vendor -->
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/> <!-- deprecated in 1.2 -->
- </xs:complexType>
- <xs:complexType name="CompatibleDeviceType">
- <xs:attribute name="deviceIndex" type="xs:string" use="optional" />
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="optional"/>
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/>
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/>
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- </xs:complexType>
- <xs:complexType name="BoardsDeviceType">
- <xs:attribute name="deviceIndex" type="xs:string" use="optional" />
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- <xs:attribute name="Dfamily" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- <xs:attribute name="DsubFamily" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/> <!-- use Dfamiliy or DsubFamily or Dname attribute exclusively -->
- </xs:complexType>
- <xs:simpleType name="BoardBookCategoryEnum">
- <xs:restriction base="xs:token">
- <xs:enumeration value="setup"/>
- <xs:enumeration value="schematic"/>
- <xs:enumeration value="overview"/>
- <xs:enumeration value="manual"/>
- <xs:enumeration value="layout"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="BoardsBookType">
- <xs:attribute name="category" type="BoardBookCategoryEnum"/>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="title" type="xs:string"/>
- <!-- if true, the vendor gives permission for this file being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- <xs:complexType name="DebugInterfaceType">
- <xs:attribute name="adapter" type="xs:string"/>
- <xs:attribute name="connector" type="xs:string"/>
- </xs:complexType>
-
- <xs:group name="BoardElementsGroup">
- <xs:choice>
- <xs:element name="description" type="xs:string" minOccurs="0"/>
- <xs:element name="feature" type="BoardFeatureType" maxOccurs="unbounded"/>
- <xs:element name="mountedDevice" type="BoardsDeviceType" maxOccurs="unbounded"/>
- <xs:element name="compatibleDevice" type="CompatibleDeviceType" maxOccurs="unbounded"/>
- <xs:element name="image" minOccurs="0">
- <xs:complexType>
- <xs:attribute name="small" type="xs:string" use="optional"/>
- <xs:attribute name="large" type="xs:string" use="optional"/>
- <!-- if true, the vendor gives permission for this file being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="debugInterface" type="DebugInterfaceType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="book" type="BoardsBookType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- </xs:group>
- <xs:complexType name="BoardType">
- <xs:sequence>
- <xs:group ref="BoardElementsGroup" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="vendor" type="xs:string" use="required"/>
- <xs:attribute name="name" type="xs:string" use="required"/>
- <xs:attribute name="revision" type="xs:string" use="optional"/>
- <xs:attribute name="salesContact" type="xs:string" use="optional"/>
- <xs:attribute name="orderForm" type="xs:anyURI" use="optional"/>
- </xs:complexType>
- <xs:complexType name="BoardsType">
- <xs:sequence>
- <xs:element name="board" type="BoardType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="ExampleAttributesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="category" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="component" type="ComponentCategoryType" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="keyword" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- </xs:complexType>
- <xs:complexType name="ExampleType">
- <xs:sequence>
- <!-- brief example description -->
- <xs:element name="description" type="xs:string"/>
- <!-- references the board -->
- <xs:element name="board" type="BoardReferenceType" maxOccurs="unbounded"/>
- <!-- lists environments with their load files -->
- <xs:element name="project" type="ExampleProjectType"/>
- <!-- categories, keywords and used components -->
- <xs:element name="attributes" type="ExampleAttributesType" />
- </xs:sequence>
- <!-- display name of the example -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- relative folder where the example is stored in the package -->
- <xs:attribute name="folder" type="xs:string" use="required"/>
- <!-- archive file name with extension located in folder -->
- <xs:attribute name="archive" type="xs:string" use="optional"/>
- <!-- file name with extension relative to folder -->
- <xs:attribute name="doc" type="xs:string" use="required"/>
- <!-- version of the example -->
- <xs:attribute name="version" type="xs:string" use="optional"/>
- <!-- if true, the vendor gives permission for the doc file being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- <!-- section listing all examples contained in the package -->
- <xs:complexType name="ExamplesType">
- <xs:sequence>
- <xs:element name="example" type="ExampleType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="KeywordsType">
- <xs:sequence>
- <xs:element name="keyword" type="xs:string" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <xs:simpleType name="InstancesType">
- <xs:restriction base="xs:unsignedInt">
- <xs:minInclusive value="1"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- Component file type definition -->
- <xs:complexType name="FileType">
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- file item action attribute : config (copy to project, template, interface) -->
- <xs:attribute name="attr" type="FileAttributeType" use ="optional"/>
- <!-- description for "template" or "interface" files. Multiple items are combined when they have the same select attribute -->
- <xs:attribute name="select" type="xs:string" use ="optional"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- copy file to project folder: deprecated, use attr="config" instead -->
- <xs:attribute name="copy" type ="xs:string" use="optional"/>
- <!-- simple file version: to be used by RTE copy file action to see whether the file needs updating in project -->
- <xs:attribute name="version" type ="ComponentVersionType" use="optional"/>
- <!-- path(s) to find source files for a library, paths are delimited with semicolon (;) -->
- <xs:attribute name="src" type="xs:string" use ="optional"/>
- <!-- if true, the vendor gives permission for this file being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- <!-- some strings are used to construct filenames (e.g. package name). Such names can contain only subset of characters
- and must not contain neither spaces nor dots.
- -->
- <xs:simpleType name="RestrictedString">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\-_A-Za-z0-9]+"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="RestrictedStringDname">
- <xs:restriction base="xs:string">
- <xs:pattern value="[\-_A-Za-z0-9/]+"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="SchemaVersionType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-9]+\.[0-9]+((\.[0-9]+)|())"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="ComponentVersionType">
- <xs:restriction base="xs:string">
- <xs:pattern value="[0-9]+\.[0-9]+((\.[0-9]+)|())((\-[0-9A-Za-z_\-\.]+)|([_A-Za-z][0-9A-Za-z_\-\.]*)|())((\+[\-\._A-Za-z0-9]+)|())"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- version can contain one or more of alphanumeric characters and symbols '_' '-' '.'
- Important: version pattern shall remain the same while versions change
- -->
- <xs:simpleType name="PackVersionType">
- <xs:restriction base="xs:string">
- <!-- major . minor . patch [[-]quality] [+build] -->
- <xs:pattern value="[0-9]+.[0-9]+.[0-9]+((\-[0-9A-Za-z_\-\.]+)|([_A-Za-z][0-9A-Za-z_\-\.]*)|())((\+[\-\._A-Za-z0-9]+)|())"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- version can contain one or more of alphanumeric characters and symbols '_' '-' '.'
- Allows specifing a version range: minVersion : maxVersion
- -->
- <xs:simpleType name="ConditionVersionType">
- <xs:restriction base="xs:string">
- <!-- <xs:pattern value="[\.:\-_A-Za-z0-9]+"/> -->
- <xs:pattern value="[0-9]+.[0-9]+((.[0-9]+)|())((\-[0-9A-Za-z_\-\.]+)|([_A-Za-z][0-9A-Za-z_\-\.]*)|())((\+[\-\._A-Za-z0-9]+)|())((:[0-9]+.[0-9]+((.[0-9]+)|()))|())((\-[0-9A-Za-z_\-\.]+)|([_A-Za-z][0-9A-Za-z_\-\.]*)|())((\+[\-\._A-Za-z0-9]+)|())"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- PackageType creates a unique ID for a package (added in 1.4.4) -->
- <xs:complexType name="PackageType">
- <!-- vendor of the package -->
- <xs:attribute name="vendor" type="xs:string" use="required"/>
- <!-- name of the package -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- version or version range of the package -->
- <xs:attribute name="version" type="ConditionVersionType" use="optional"/>
- </xs:complexType>
-
- <!-- Package dependency section type (added in 1.4.4) -->
- <xs:complexType name="PackagesType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="package" type="PackageType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- LanguageType creates a unique language ID (added in 1.4.4) -->
- <xs:complexType name="LanguageType">
- <!-- language name e.g. C -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- language version e.g. C99 -->
- <xs:attribute name="version" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Lanuage section type (added in 1.4.4) -->
- <xs:complexType name="LanguagesType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="language" type="LanguageType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- CompilerType crates a unique toolchain ID, e.g. armcc 5.4.0 (added in 1.4.4) -->
- <xs:complexType name="CompilerType">
- <xs:attribute name="name" type="CompilerEnumType" use="required"/>
- <xs:attribute name="version" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Compiler section type (added in 1.4.4) -->
- <xs:complexType name="CompilersType">
- <xs:sequence maxOccurs="unbounded">
- <xs:element name="compiler" type="CompilerType"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Requirements Section: (added in 1.4.4) -->
- <xs:complexType name="RequirementsType">
- <xs:all>
- <xs:element name="packages" type="PackagesType" minOccurs="0"/>
- <xs:element name="languages" type="LanguagesType" minOccurs="0"/>
- <xs:element name="compilers" type="CompilersType" minOccurs="0"/>
- </xs:all>
- </xs:complexType>
- <!-- Project target specification: (added in 1.4.4) -->
- <xs:complexType name="TargetType">
- <xs:choice maxOccurs="unbounded">
- <!-- build options -->
- <xs:element name="output" type="OutputType"/>
- <!-- memory options -->
- <xs:element name="memory" type="TargetMemoryType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- stack setting -->
- <xs:element name="stack" type="StackType" minOccurs="0" maxOccurs="1"/>
- <!-- heap setting -->
- <xs:element name="heap" type="HeapType" minOccurs="0" maxOccurs="1"/>
- <!-- algorithm options -->
- <xs:element name="algorithm" type="TargetAlgorithmType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- debug probe selection and configuration -->
- <xs:element name="debugProbe" type="DebugProbeType" minOccurs="0"/>
- </xs:choice>
- <!-- Board Vendor -->
- <xs:attribute name="Bvendor" type="xs:string" use="optional"/>
- <!-- Board Name -->
- <xs:attribute name="Bname" type="xs:string" use="optional"/>
- <!-- Board Version -->
- <xs:attribute name="Bversion" type="xs:string" use="optional"/>
- <!-- Device Vendor -->
- <xs:attribute name="Dvendor" type="xs:string" use="optional"/>
- <!-- Device Name -->
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- <!-- Processor Instance Name -->
- <xs:attribute name="Pname" type="xs:string" use="optional"/>
- <!-- FPU used in target build -->
- <xs:attribute name="Dfpu" type="DfpuEnum" use="optional"/>
- <!-- Endianess used in target build -->
- <xs:attribute name="Dendian" type="DendianEnum" use="optional"/>
- <!-- MPU used in target build -->
- <xs:attribute name="Dmpu" type="DmpuEnum" use="optional"/>
- </xs:complexType>
- <!-- Debug probe specification: (added in 1.4.4) -->
- <xs:complexType name="DebugProbeType">
- <!-- Product Name of the debug probe-->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Debug protocol selection -->
- <xs:attribute name="protocol" type="xs:string" use="required"/>
- <!-- Core clock configured by application -->
- <xs:attribute name="coreClock" type="NonNegativeInteger" use="required"/>
- <!-- TPIU clock configured-->
- <xs:attribute name="tpiuClock" type="NonNegativeInteger" use="optional"/>
- </xs:complexType>
- <!-- Build settings for the project, setting RTE filter options (added in 1.4.4) -->
- <xs:complexType name="OutputType">
- <!-- Project output file name -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- Project output library or executable -->
- <xs:attribute name="type" type="CompilerOutputType" use="required"/>
- <!-- Project build for debug -->
- <xs:attribute name="debug" type="xs:boolean" use="required"/>
- </xs:complexType>
- <!-- Memory settings for the project, redefining defaults from DFP (added in 1.4.4) -->
- <xs:complexType name="TargetMemoryType">
- <xs:attribute name="id" type="xs:string" use="optional"/> <!-- only use with legacy DFPs -->
- <!-- defines the name of the memory for reference, allows to redefine memory from DFP -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- (re-)defines the start address of the memory -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- (re-)defines the size in bytes of the memory -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- disables the memory with the name specified by DFP -->
- <xs:attribute name="remove" type="xs:boolean" use="optional" default="0"/>
- <!-- if true, this memory is used for the startup code -->
- <xs:attribute name="startup" type="xs:boolean" use="optional" default="0"/>
- <!-- if true, this memory is initialized with 0 -->
- <xs:attribute name="init" type="xs:boolean" use="optional" default="0"/>
- <!-- overrides access permisson configured by the DFP -->
- <xs:attribute name="access" type="AccessType" use="optional"/>
- <!-- specifies whether the memory is used as default by linker -->
- <xs:attribute name="default" type="xs:boolean" use="optional" default="0"/>
- </xs:complexType>
- <!-- Algorithm settings for the project, redefining defaults from DFP (added in 1.4.4) -->
- <xs:complexType name="TargetAlgorithmType">
- <!-- references the filename of the algorith, allowing to redefine attributes of algorithms in DFP -->
- <xs:attribute name="name" type="xs:string" use="required"/>
- <!-- overrides the start address programmed by named algorithm from DFP -->
- <xs:attribute name="start" type="NonNegativeInteger" use="optional"/>
- <!-- overrides the size programmed by named algorithm from DFP -->
- <xs:attribute name="size" type="NonNegativeInteger" use="optional"/>
- <!-- disables the algorithm specified as default in DFP -->
- <xs:attribute name="remove" type="xs:boolean" use="optional" default="0"/>
- <!-- overrides the RAMstart for algorithm with 'name' from DFP -->
- <xs:attribute name="RAMstart" type="NonNegativeInteger" use="optional"/>
- <!-- overrides the RAMsize for algorithm with 'name' from DFP -->
- <xs:attribute name="RAMsize" type="NonNegativeInteger" use="optional"/>
- </xs:complexType>
- <!-- element specifying the stack (added in 1.4.4) -->
- <xs:complexType name="StackType">
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- </xs:complexType>
- <!-- element specifying the heap (added in 1.4.4) -->
- <xs:complexType name="HeapType">
- <xs:attribute name="size" type="NonNegativeInteger" use="required"/>
- </xs:complexType>
- <!-- Project file type definition (added in 1.4.4) -->
- <xs:complexType name="ProjectFileType">
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- path(s) to find source files for a library, paths are delimited with semicolon (;) -->
- <xs:attribute name="src" type="xs:string" use ="optional"/>
- </xs:complexType>
- <!-- Group section contains a list of files and (sub-)groups (added in 1.4.4) -->
- <xs:complexType name="GroupType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="file" type="ProjectFileType" />
- <xs:element name="group" type="GroupType" />
- </xs:choice>
- <xs:attribute name="name" use="required"/>
- </xs:complexType>
- <!-- Files section within the project section (added in 1.4.4) -->
- <xs:complexType name="ProjectFilesType">
- <xs:choice maxOccurs="unbounded">
- <xs:element name="file" type="ProjectFileType" />
- <xs:element name="group" type="GroupType" />
- </xs:choice>
- </xs:complexType>
-
- <!-- Component selection section (added in 1.4.4) -->
- <xs:complexType name="ComponentSelectType">
- <xs:sequence>
- <xs:element name="component" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- all config files -->
- <xs:element name="file" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <!-- condition id of the condition that evaluates to true on project creation -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: source, header, include path, etc. -->
- <xs:attribute name="category" type="FileCategoryType" use ="required"/>
- <!-- file item action attribute : config (copy to project, template, interface) -->
- <xs:attribute name="attr" type="FileAttributeType" use ="optional"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- configuration file version: to be used by RTE to see whether the file requires updating or not -->
- <xs:attribute name="version" type ="ComponentVersionType" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cbundle" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="ComponentVersionType" use="optional"/>
- <xs:attribute name="Capiversion" type="ComponentVersionType" use="optional"/> <!-- only used when component implements an API -->
- <xs:attribute name="instances" type="InstancesType" use="optional" default="1"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
-
- <!-- Project section: (added in 1.4.4) -->
- <xs:complexType name="ProjectType">
- <xs:all>
- <!-- target selection and configuration -->
- <xs:element name="target" type="TargetType"/>
- <!-- components selected for project -->
- <xs:element name="select" type="ComponentSelectType"/>
- <!-- project files not contained in components -->
- <xs:element name="files" type="ProjectFilesType"/>
- </xs:all>
- <!-- if no project name is provided, the filename of the GPDSC is used -->
- <xs:attribute name="name" type="xs:string" use="optional"/>
- <!-- optional link/reference to documentation about the project -->
- <xs:attribute name="documentation" type="xs:string" use="optional"/>
- <!-- if true, the vendor gives permission for the documentation being extracted from the pack and displayed on a web-page -->
- <!-- links to web pages are assumed public -->
- <xs:attribute name="public" type="xs:boolean" use="optional" default="false"/>
- </xs:complexType>
- <!-- Create Section: (added in 1.4.4) -->
- <xs:complexType name="CreateType">
- <xs:sequence>
- <!-- project section -->
- <xs:element name="project" type="ProjectType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- release contains version as an attribute and notes as element text -->
- <xs:complexType name="ReleaseType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="version" type="PackVersionType" use="required"/>
- <xs:attribute name="date" type="xs:date" use="optional"/>
- <xs:attribute name="deprecated" type="xs:date" use="optional"/>
- <xs:attribute name="replacement" type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="ReleasesType">
- <xs:sequence>
- <xs:element name="release" type="ReleaseType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- Generator file type definition -->
- <xs:complexType name="GeneratorFileType">
- <!-- conditions can be used to filter relevant files depending on e.g. device name
- or toolchain -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- file item category: generator specific file type -->
- <xs:attribute name="category" type="xs:string" use ="required"/>
- <!-- path + filename + extension -->
- <xs:attribute name="name" type ="xs:string" use="required" />
- <!-- file version -->
- <xs:attribute name="version" type ="ComponentVersionType" use="optional"/>
- </xs:complexType>
- <xs:complexType name="GeneratorDeviceSelectType">
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- <xs:attribute name="Dname" type="xs:string" use="optional"/>
- <xs:attribute name="Dvariant" type="xs:string" use="optional"/>
- <xs:attribute name="Pname" type="RestrictedString" use="optional"/>
- </xs:complexType>
- <xs:simpleType name="HostEnumType">
- <xs:restriction base="xs:token">
- <xs:enumeration value="all"/>
- <xs:enumeration value="win"/>
- <xs:enumeration value="linux"/>
- <xs:enumeration value="mac"/>
- <xs:enumeration value="other"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="WebGeneratorURLType">
- <xs:restriction base="xs:token">
- <xs:pattern value="http[s]{0,1}://[!-~]+"/>
- </xs:restriction>
- </xs:simpleType>
- <!-- exe generator argument has optional host and switch attributes -->
- <xs:complexType name="ExeGeneratorArgumentType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="switch" type="xs:string" use="optional"/>
- <xs:attribute name="host" type="HostEnumType" use="optional" default="all"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- web generator argument does not have host attribute -->
- <xs:complexType name="WebGeneratorArgumentType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <!-- web generator argument must have switch argument -->
- <xs:attribute name="switch" type="xs:string" use="required"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!-- eclipse generator argument does not have host nor switch attribute -->
- <xs:complexType name="EclipseGeneratorArgumentType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="GeneratorCommandType">
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="host" type="HostEnumType" use="optional" default="all"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
- <xs:complexType name="GeneratorCommandArgumentsType">
- <xs:sequence>
- <xs:element name="argument" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base='xs:string'>
- <xs:attribute name="switch" type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- </xs:complexType>
- <xs:complexType name="GpdscFileType">
- <xs:attribute name="name" type="xs:string" use="required"/>
- </xs:complexType>
- <xs:complexType name="ExeGeneratorType">
- <xs:sequence>
- <xs:element name="command" type="GeneratorCommandType" minOccurs="1" maxOccurs="4"/>
- <xs:element name="argument" type="ExeGeneratorArgumentType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="host" type="HostEnumType" use="optional" default="all"/>
- </xs:complexType>
- <xs:complexType name="WebGeneratorType">
- <xs:sequence>
- <xs:element name="argument" type="WebGeneratorArgumentType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="url" type="WebGeneratorURLType" use="required"/>
- </xs:complexType>
- <xs:complexType name="EclipseGeneratorType">
- <xs:sequence>
- <xs:element name="argument" type="EclipseGeneratorArgumentType" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="plugin" type="xs:string" use="required"/>
- <xs:attribute name="class" type="xs:string" use="required"/>
- <xs:attribute name="method" type="xs:string" use="required"/>
- </xs:complexType>
- <!-- Generator Type -->
- <xs:complexType name="GeneratorType">
- <xs:choice maxOccurs="unbounded">
- <!-- deprecated - use exe, web and/or eclipse -->
- <xs:element name="command" type="xs:string" minOccurs="0"/>
- <!-- deprecated - use argument tags under exe, web and or eclipse-->
- <xs:element name="arguments" type="GeneratorCommandArgumentsType" minOccurs="0"/>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="select" type="GeneratorDeviceSelectType" minOccurs="0"/>
- <xs:element name="workingDir" type="xs:string" minOccurs="0"/>
- <xs:element name="exe" type="ExeGeneratorType" minOccurs="0" maxOccurs="5"/>
- <xs:element name="web" type="WebGeneratorType" minOccurs="0"/>
- <xs:element name="eclipse" type="EclipseGeneratorType" minOccurs="0"/>
- <xs:element name="gpdsc" type="GpdscFileType" minOccurs="0"/>
- <!-- list of project files / content -->
- <xs:element name="project_files" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- list of tool files / content -->
- <xs:element name="files" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <!-- tool files are under sole control of the generator -->
- <xs:element name="file" type="GeneratorFileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- Generator tools specific section ignored by other tools -->
- <xs:element name="extensions" minOccurs="0">
- <xs:complexType>
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded">
- </xs:any>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- <xs:attribute name="id" type="xs:string" use ="required"/>
- <xs:attribute name="Gvendor" type="xs:string" use ="optional"/>
- <xs:attribute name="Gtool" type="xs:string" use ="optional"/>
- <xs:attribute name="Gversion" type="xs:string" use ="optional"/>
- </xs:complexType>
-
- <!-- Generators Section -->
- <xs:complexType name="GeneratorsType">
- <xs:sequence>
- <xs:element name="generator" type="GeneratorType" minOccurs="1" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- <!-- package description root point -->
- <xs:element name="package" nillable="true">
- <xs:complexType>
- <xs:all>
- <!-- name of the package (Device Support=DFP, Board Support=BSP) -->
- <xs:element name="name" type="RestrictedString" minOccurs="1"/>
- <!-- company name of the developer/maintainer of this package -->
- <xs:element name="vendor" type="RestrictedString" minOccurs="1"/>
- <!-- brief description of the content and purpose of the package -->
- <xs:element name="description" type="xs:string" minOccurs="1"/>
- <!-- download location of this PDSC and corresponding package file -->
- <xs:element name="url" type="xs:anyURI" minOccurs="1"/>
- <!-- e.g. mailto:Support@<vendor>.com or www.<vendor>.com/supportRequest -->
- <xs:element name="supportContact" type="xs:string" minOccurs="0"/>
- <!-- optional: click through license file name and relative path -->
- <xs:element name="license" type="xs:string" minOccurs="0"/>
- <!-- optional: section listing requirements (1.4.2) -->
- <xs:element name="requirements" type="RequirementsType" minOccurs="0"/>
- <!-- optional: section used for tool independant project creation (one shot) -->
- <xs:element name="create" type="CreateType" minOccurs="0"/>
- <!-- Version numbers and release history -->
- <xs:element name="releases" type="ReleasesType" minOccurs="1"/>
- <!-- keyword for Search Engine Indexing (e.g. Google) -->
- <xs:element name="keywords" type="KeywordsType" minOccurs="0"/>
- <!-- generators are tools and utilities that are used to generate software components -->
- <xs:element name="generators" type="GeneratorsType" minOccurs="0"/>
- <!-- definition of devices including references to device support files contained in package -->
- <xs:element name="devices" minOccurs="0">
- <xs:complexType>
- <!-- top level -->
- <xs:sequence>
- <!-- Family Level begin -->
- <xs:element name="family" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <xs:element name="device" type="DeviceType" minOccurs="0" maxOccurs="unbounded"/>
- <!-- Sub Family Level begin-->
- <xs:element name="subFamily" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:group ref="DevicePropertiesGroup"/>
- <!-- Device Level begin-->
- <xs:element name="device" type="DeviceType" maxOccurs="unbounded"/>
- <!-- Device Level end -->
- </xs:sequence>
- <xs:attribute name="DsubFamily" type="xs:string" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Sub Family Level end -->
- </xs:sequence>
- <xs:attribute name="Dfamily" type="xs:string" use="required"/>
- <xs:attribute name="Dvendor" type="DeviceVendorEnum" use="required"/>
- </xs:complexType>
- </xs:element>
- <!-- Family Level end -->
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!-- devices end -->
- <!-- definition of boards. Can be referenced by examples -->
- <xs:element name="boards" type="BoardsType" minOccurs="0"/>
- <!-- boards end -->
- <!-- taxonomy section contains default descriptions used in the entire model -->
- <xs:element name="taxonomy" type="TaxonomyType" minOccurs="0"/>
- <!-- apis section contains api descriptions used in the entire model -->
- <xs:element name="apis" type="ApisType" minOccurs="0"/>
- <!-- conditions section contains all condition entries used by any component of the package -->
- <xs:element name="conditions" type="ConditionsType" minOccurs="0"/>
- <!-- examples section defining examples available within a package -->
- <xs:element name="examples" type="ExamplesType" minOccurs="0"/>
- <!-- software component definition -->
- <xs:element name="components" minOccurs="0">
- <xs:complexType>
- <xs:choice minOccurs="1" maxOccurs="unbounded">
- <!-- COMPONENT Description Root Point: -->
- <xs:element name="bundle" minOccurs="1" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="description" type="xs:string"/>
- <xs:element name="doc" type="xs:string"/>
- <xs:element name="component" minOccurs="1" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- a component can be deprecated if it is no longer maintained-->
- <xs:element name="deprecated" type="xs:boolean" minOccurs="0" default="false"/>
- <!-- short component description displayed -->
- <xs:element name="description" type="xs:string"/>
- <!-- content to be added to generated RTE_Component.h file -->
- <xs:element name="RTE_Components_h" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- component identity attributes Cclass Cvendor and Cversion are specified by bundle -->
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="ComponentVersionType" use="optional"/>
- <!-- api version for this component -->
- <xs:attribute name="Capiversion" type="ComponentVersionType" use="optional"/>
- <!-- component attribute for referencing a condition specified in conditions section above -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- maximum allowed number of instances of a component in a project, default - 1-->
- <xs:attribute name="maxInstances" type="InstancesType" use="optional"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this component variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- bundle attributes -->
- <xs:attribute name="Cbundle" type="xs:string" use="required"/>
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cversion" type="ComponentVersionType" use="required"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this bundle variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="component" minOccurs="0" maxOccurs="unbounded">
- <xs:complexType>
- <xs:sequence>
- <!-- a component can be deprecated if it is no longer maintained-->
- <xs:element name="deprecated" type="xs:boolean" minOccurs="0" default="false"/>
- <!-- short component description displayed -->
- <xs:element name="description" type="xs:string"/>
- <!-- content to be added to generated RTE_Component.h file -->
- <xs:element name="RTE_Components_h" type="xs:string" minOccurs="0"/>
- <!-- list of files / content -->
- <xs:element name="files">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="file" type="FileType" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:sequence>
- <!-- component identity attributes -->
- <xs:attribute name="Cvendor" type="xs:string" use="optional"/>
- <xs:attribute name="Cclass" type="CclassType" use="required"/>
- <xs:attribute name="Cgroup" type="CgroupType" use="required"/>
- <xs:attribute name="Csub" type="CsubType" use="optional"/>
- <xs:attribute name="Cvariant" type="CvariantType" use="optional"/>
- <xs:attribute name="Cversion" type="ComponentVersionType" use="required"/>
- <!-- api version for this component -->
- <xs:attribute name="Capiversion" type="ComponentVersionType" use="optional"/>
- <!-- component attribute for referencing a condition specified in conditions section above -->
- <xs:attribute name="condition" type="xs:string" use="optional"/>
- <!-- maximum allowed number of instances of a component in a project, default - 1-->
- <xs:attribute name="maxInstances" type="InstancesType" use="optional"/>
- <!-- association of component with a generator. If the component is selected the generator information becomes active -->
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- <!-- identifies this component variant to be the preferred variant [Version 1.4.0] -->
- <xs:attribute name="isDefaultVariant" type="xs:boolean" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:choice>
- <xs:attribute name="generator" type="xs:string" use="optional"/>
- </xs:complexType>
- </xs:element>
- </xs:all>
- <xs:attribute name="schemaVersion" type="SchemaVersionType" use="required"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
|