1<?xml version="1.0" encoding="UTF-8"?> 2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 3 4 <!-- BEGIN W3cXmlAttributes.xsd --> 5 <xs:annotation> 6 <xs:documentation> 7 See http://www.w3.org/XML/1998/namespace.html and 8 http://www.w3.org/TR/REC-xml for information about this namespace. 9 10 This schema document describes the XML namespace, in a form 11 suitable for import by other schema documents. 12 13 Note that local names in this namespace are intended to be defined 14 only by the World Wide Web Consortium or its subgroups. The 15 following names are currently defined in this namespace and should 16 not be used with conflicting semantics by any Working Group, 17 specification, or document instance: 18 19 base (as an attribute name): denotes an attribute whose value 20 provides a URI to be used as the base for interpreting any 21 relative URIs in the scope of the element on which it 22 appears; its value is inherited. This name is reserved 23 by virtue of its definition in the XML Base specification. 24 25 id (as an attribute name): denotes an attribute whose value 26 should be interpreted as if declared to be of type ID. 27 The xml:id specification is not yet a W3C Recommendation, 28 but this attribute is included here to facilitate experimentation 29 with the mechanisms it proposes. Note that it is _not_ included 30 in the specialAttrs attribute group. 31 32 lang (as an attribute name): denotes an attribute whose value 33 is a language code for the natural language of the content of 34 any element; its value is inherited. This name is reserved 35 by virtue of its definition in the XML specification. 36 37 space (as an attribute name): denotes an attribute whose 38 value is a keyword indicating what whitespace processing 39 discipline is intended for the content of the element; its 40 value is inherited. This name is reserved by virtue of its 41 definition in the XML specification. 42 43 Father (in any context at all): denotes Jon Bosak, the chair of 44 the original XML Working Group. This name is reserved by 45 the following decision of the W3C XML Plenary and 46 XML Coordination groups: 47 48 In appreciation for his vision, leadership and dedication 49 the W3C XML Plenary on this 10th day of February, 2000 50 reserves for Jon Bosak in perpetuity the XML name 51 xml:Father 52 </xs:documentation> 53 </xs:annotation> 54 55 <xs:annotation> 56 <xs:documentation>This schema defines attributes and an attribute group 57 suitable for use by 58 schemas wishing to allow xml:base, xml:lang, xml:space or xml:id 59 attributes on elements they define. 60 61 To enable this, such a schema must import this schema 62 for the XML namespace, e.g. as follows: 63 <schema . . .> 64 . . . 65 <import namespace="http://www.w3.org/XML/1998/namespace" 66 schemaLocation="http://www.w3.org/2005/08/xml.xsd"/> 67 68 Subsequently, qualified reference to any of the attributes 69 or the group defined below will have the desired effect, e.g. 70 71 <type . . .> 72 . . . 73 <attributeGroup ref="xml:specialAttrs"/> 74 75 will define a type which will schema-validate an instance 76 element with any of those attributes</xs:documentation> 77 </xs:annotation> 78 79 <xs:annotation> 80 <xs:documentation>In keeping with the XML Schema WG's standard versioning 81 policy, this schema document will persist at 82 http://www.w3.org/2005/08/xml.xsd. 83 At the date of issue it can also be found at 84 http://www.w3.org/2001/xml.xsd. 85 The schema document at that URI may however change in the future, 86 in order to remain compatible with the latest version of XML Schema 87 itself, or with the XML namespace itself. In other words, if the XML 88 Schema or XML namespaces change, the version of this document at 89 http://www.w3.org/2001/xml.xsd will change 90 accordingly; the version at 91 http://www.w3.org/2005/08/xml.xsd will not change. 92 </xs:documentation> 93 </xs:annotation> 94 95 <xs:attribute name="lang"> 96 <xs:annotation> 97 <xs:documentation>Attempting to install the relevant ISO 2- and 3-letter 98 codes as the enumerated possible values is probably never 99 going to be a realistic possibility. See 100 RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry 101 at http://www.iana.org/assignments/lang-tag-apps.htm for 102 further information. 103 104 The union allows for the 'un-declaration' of xml:lang with 105 the empty string.</xs:documentation> 106 </xs:annotation> 107 <xs:simpleType> 108 <xs:union memberTypes="xs:language"> 109 <xs:simpleType name="langEnum"> 110 <xs:restriction base="xs:string"> 111 <xs:enumeration value=""/> 112 </xs:restriction> 113 </xs:simpleType> 114 </xs:union> 115 </xs:simpleType> 116 </xs:attribute> 117 118 <xs:attribute name="space"> 119 <xs:simpleType name="spaceEnum"> 120 <xs:restriction base="xs:NCName"> 121 <xs:enumeration value="default"/> 122 <xs:enumeration value="preserve"/> 123 </xs:restriction> 124 </xs:simpleType> 125 </xs:attribute> 126 127 <xs:attribute name="base" type="xs:anyURI"> 128 <xs:annotation> 129 <xs:documentation>See http://www.w3.org/TR/xmlbase/ for 130 information about this attribute.</xs:documentation> 131 </xs:annotation> 132 </xs:attribute> 133 134 <xs:attribute name="id" type="xs:ID"> 135 <xs:annotation> 136 <xs:documentation>See http://www.w3.org/TR/xml-id/ for 137 information about this attribute.</xs:documentation> 138 </xs:annotation> 139 </xs:attribute> 140 141 <xs:attributeGroup name="specialAttrs"> 142 <xs:attribute ref="xml:base"/> 143 <xs:attribute ref="xml:lang"/> 144 <xs:attribute ref="xml:space"/> 145 </xs:attributeGroup> 146 <!-- END W3cXmlAttributes.xsd --> 147 148 <!-- BEGIN ParameterSettings.xsd --> 149<!-- BUG b/147297854 - removed "abstract" from type definition --> 150 <xs:complexType name="ParameterType"> 151 <xs:simpleContent> 152 <xs:extension base="xs:string"> 153 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 154 <xs:attribute name="ValueSpace" use="optional"> 155 <xs:simpleType name="ValueSpaceEnum"> 156 <xs:restriction base="xs:string"> 157 <xs:enumeration value="Raw"/> 158 <xs:enumeration value="Real"/> 159 </xs:restriction> 160 </xs:simpleType> 161 </xs:attribute> 162 </xs:extension> 163 </xs:simpleContent> 164 </xs:complexType> 165 <xs:complexType name="BooleanParameterType"> 166 <xs:simpleContent> 167 <xs:restriction base="ParameterType"> 168 <xs:pattern value="([01][\s]*)+"/> 169 <xs:pattern value="((0x0|0x1)[\s]*)+"/> 170 <xs:attribute name="ValueSpace" use="prohibited"/> 171 </xs:restriction> 172 </xs:simpleContent> 173 </xs:complexType> 174 <xs:complexType name="IntegerParameterType"> 175 <xs:simpleContent> 176 <xs:restriction base="ParameterType"> 177 <xs:pattern value="(0|([+-]?[1-9][0-9]*))(\s+(0|([+-]?[1-9][0-9]*)))*"/> 178 <xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/> 179 <xs:attribute name="ValueSpace" use="prohibited"/> 180 </xs:restriction> 181 </xs:simpleContent> 182 </xs:complexType> 183 <xs:complexType name="EnumParameterType"> 184 <xs:simpleContent> 185 <xs:restriction base="ParameterType"> 186 <xs:attribute name="ValueSpace" use="prohibited"/> 187 </xs:restriction> 188 </xs:simpleContent> 189 </xs:complexType> 190 <xs:complexType name="PointParameterType"> 191 <xs:simpleContent> 192 <xs:restriction base="ParameterType"> 193 <xs:pattern value="((0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)(\s+(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)*"/> 194 <xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/> 195 </xs:restriction> 196 </xs:simpleContent> 197 </xs:complexType> 198 <xs:complexType name="BitParameterBlockType"> 199 <xs:sequence> 200 <xs:element name="BitParameter" maxOccurs="unbounded" type="IntegerParameterType"/> 201 </xs:sequence> 202 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 203 </xs:complexType> 204 <xs:complexType name="StringParameterType"> 205 <xs:simpleContent> 206 <xs:extension base="xs:string"> 207 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 208 </xs:extension> 209 </xs:simpleContent> 210 </xs:complexType> 211 <xs:group name="ParameterBlockGroup"> 212 <xs:choice> 213 <xs:element name="BooleanParameter" type="BooleanParameterType"/> 214 <xs:element name="IntegerParameter" type="IntegerParameterType"/> 215 <xs:element name="EnumParameter" type="EnumParameterType"/> 216 <xs:element name="FixedPointParameter" type="PointParameterType"/> 217 <xs:element name="FloatingPointParameter" type="PointParameterType"/> 218 <xs:element name="BitParameterBlock" type="BitParameterBlockType"> 219 <xs:unique name="BitParameterBlockSubElementsUniqueness"> 220 <xs:selector xpath="*"/> 221 <xs:field xpath="@Name"/> 222 </xs:unique> 223 </xs:element> 224 <xs:element name="StringParameter" type="StringParameterType"/> 225 <xs:element name="Component" type="ParameterBlockType"/> 226 <xs:element name="ParameterBlock" type="ParameterBlockType"> 227 <xs:unique name="ParameterBlockSubElementsUniqueness"> 228 <xs:selector xpath="*"/> 229 <xs:field xpath="@Name"/> 230 </xs:unique> 231 </xs:element> 232 </xs:choice> 233 </xs:group> 234 <xs:complexType name="ParameterBlockType"> 235 <xs:sequence> 236 <xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/> 237 </xs:sequence> 238 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 239 </xs:complexType> 240 <!-- END ParameterSettings.xsd --> 241 242 <!-- BEGIN ConfigurableDomain.xsd --> 243 <xs:complexType name="SelectionCriterionRuleType"> 244 <xs:attribute name="SelectionCriterion" type="xs:NMTOKEN" use="required"/> 245 <xs:attribute name="MatchesWhen" use="required"> 246 <xs:simpleType name="MatchesWhenEnum"> 247 <xs:restriction base="xs:NMTOKEN"> 248 <xs:enumeration value="Is"/> 249 <xs:enumeration value="IsNot"/> 250 <xs:enumeration value="Includes"/> 251 <xs:enumeration value="Excludes"/> 252 </xs:restriction> 253 </xs:simpleType> 254 </xs:attribute> 255 <xs:attribute name="Value" use="required" type="xs:NMTOKEN"/> 256 </xs:complexType> 257 <xs:group name="RuleGroup"> 258 <xs:choice> 259 <xs:element name="CompoundRule" type="CompoundRuleType"/> 260 <xs:element name="SelectionCriterionRule" type="SelectionCriterionRuleType"/> 261 </xs:choice> 262 </xs:group> 263 <xs:complexType name="CompoundRuleType"> 264 <xs:sequence> 265 <xs:group ref="RuleGroup" minOccurs="0" maxOccurs="unbounded"/> 266 </xs:sequence> 267 <xs:attribute name="Type"> 268 <xs:simpleType name="TypeEnum"> 269 <xs:restriction base="xs:NMTOKEN"> 270 <xs:enumeration value="Any"/> 271 <xs:enumeration value="All"/> 272 </xs:restriction> 273 </xs:simpleType> 274 </xs:attribute> 275 </xs:complexType> 276 <xs:complexType name="ConfigurationsType"> 277 <xs:sequence> 278 <xs:element maxOccurs="unbounded" name="Configuration"> 279 <xs:complexType> 280 <xs:sequence> 281 <xs:element name="CompoundRule" type="CompoundRuleType" minOccurs="0" maxOccurs="1"/> 282 </xs:sequence> 283 <xs:attribute name="Name" use="required" type="xs:NCName"/> 284 </xs:complexType> 285 </xs:element> 286 </xs:sequence> 287 </xs:complexType> 288 <xs:group name="ComponentGroup"> 289 <xs:sequence> 290 <xs:group ref="ParameterBlockGroup"/> 291 </xs:sequence> 292 </xs:group> 293 <xs:complexType name="ComponentType"> 294 <xs:sequence> 295 <xs:choice> 296 <xs:group ref="ComponentGroup" maxOccurs="unbounded"/> 297 <xs:element name="Subsystem" type="ComponentType" maxOccurs="unbounded"/> 298 </xs:choice> 299 </xs:sequence> 300 <xs:attribute name="Name" use="required" type="xs:NCName"/> 301 </xs:complexType> 302 <xs:complexType name="ConfigurableElementsType"> 303 <xs:sequence> 304 <xs:element maxOccurs="unbounded" minOccurs="0" name="ConfigurableElement"> 305 <xs:complexType> 306 <xs:attribute name="Path" use="required"> 307 <xs:simpleType> 308 <xs:restriction base="xs:anyURI"> 309 <xs:pattern value="/.*[^/]"/> 310 </xs:restriction> 311 </xs:simpleType> 312 </xs:attribute> 313 </xs:complexType> 314 </xs:element> 315 </xs:sequence> 316 </xs:complexType> 317 <xs:complexType name="ConfigurableElementSettingsType"> 318 <xs:choice> 319 <xs:element name="BitParameter" type="IntegerParameterType"/> 320 <xs:group ref="ComponentGroup"/> 321 </xs:choice> 322 <xs:attribute name="Path" use="required"> 323 <xs:simpleType> 324 <xs:restriction base="xs:anyURI"> 325 <xs:pattern value="/.*[^/]"/> 326 </xs:restriction> 327 </xs:simpleType> 328 </xs:attribute> 329 </xs:complexType> 330 <xs:complexType name="SettingsType"> 331 <xs:sequence> 332 <xs:element maxOccurs="unbounded" minOccurs="0" name="Configuration"> 333 <xs:complexType> 334 <xs:sequence> 335 <xs:element name="ConfigurableElement" minOccurs="0" maxOccurs="unbounded" type="ConfigurableElementSettingsType"/> 336 </xs:sequence> 337 <xs:attribute name="Name" use="required" type="xs:NCName"/> 338 </xs:complexType> 339 <xs:unique name="ConfigurableElementUniqueness"> 340 <xs:selector xpath="ConfigurableElement"/> 341 <xs:field xpath="@Path"/> 342 </xs:unique> 343 </xs:element> 344 </xs:sequence> 345 </xs:complexType> 346 <xs:complexType name="ConfigurableDomainType"> 347 <xs:sequence> 348 <xs:element name="Configurations" type="ConfigurationsType"/> 349 <xs:element name="ConfigurableElements" type="ConfigurableElementsType"/> 350 <xs:element name="Settings" type="SettingsType" minOccurs="0"/> 351 </xs:sequence> 352 <xs:attribute name="Name" use="required" type="xs:NCName"/> 353 <xs:attribute name="SequenceAware" use="optional" type="xs:boolean" default="false"/> 354 </xs:complexType> 355 <xs:element name="ConfigurableDomain" type="ConfigurableDomainType"/> 356 <!-- END ConfigurableDomain.xsd --> 357 358 <!-- BEGIN ConfigurableDomains.xsd --> 359 <xs:element name="ConfigurableDomains"> 360 <xs:complexType> 361 <xs:sequence> 362 <xs:element maxOccurs="unbounded" name="ConfigurableDomain" type="ConfigurableDomainType"> 363 <xs:key name="ConfigurableElementKey"> 364 <xs:selector xpath="ConfigurableElements/ConfigurableElement"/> 365 <xs:field xpath="@Path"/> 366 </xs:key> 367 <xs:keyref refer="ConfigurableElementKey" name="ConfigurableDomainReference"> 368 <xs:selector xpath="Settings/Configuration/ConfigurableElement"/> 369 <xs:field xpath="@Path"/> 370 </xs:keyref> 371 <xs:key name="ConfigurationKey"> 372 <xs:selector xpath="Configurations/Configuration"/> 373 <xs:field xpath="@Name"/> 374 </xs:key> 375 <xs:keyref refer="ConfigurationKey" name="ConfigurationReference2"> 376 <xs:selector xpath="ConfigurableElements/ConfigurableElement/Configuration"/> 377 <xs:field xpath="@Name"/> 378 </xs:keyref> 379 <xs:keyref refer="ConfigurationKey" name="ConfigurationReference"> 380 <xs:selector xpath="Settings/Configuration"/> 381 <xs:field xpath="@Name"/> 382 </xs:keyref> 383 </xs:element> 384 </xs:sequence> 385 <xs:attribute name="SystemClassName" use="required" type="xs:NCName"/> 386 </xs:complexType> 387 <xs:unique name="ConfigurableDomainUniqueness"> 388 <xs:selector xpath="ConfigurableDomain"/> 389 <xs:field xpath="@Name"/> 390 </xs:unique> 391 </xs:element> 392 <!-- END ConfigurableDomains.xsd --> 393 394 <!-- BEGIN Parameter.xsd --> 395 <xs:attributeGroup name="Nameable"> 396 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 397 <xs:attribute name="Description" type="xs:string" use="optional"/> 398 </xs:attributeGroup> 399 <xs:attributeGroup name="TypedNameable"> 400 <xs:attributeGroup ref="Nameable"/> 401 <xs:attribute name="Type" type="xs:NMTOKEN" use="required"/> 402 </xs:attributeGroup> 403 <xs:complexType name="ComponentInstance"> 404 <xs:attributeGroup ref="TypedNameable"/> 405 <xs:attributeGroup ref="ArrayLengthAttribute"/> 406 <xs:attribute name="Mapping" use="optional" type="xs:string"/> 407 </xs:complexType> 408 <xs:simpleType name="SizeType"> 409 <xs:restriction base="xs:positiveInteger"> 410 <xs:pattern value="8|16|32"/> 411 </xs:restriction> 412 </xs:simpleType> 413 <xs:simpleType name="SizeType64"> 414 <xs:restriction base="xs:positiveInteger"> 415 <xs:pattern value="8|16|32|64"/> 416 </xs:restriction> 417 </xs:simpleType> 418 <xs:attributeGroup name="IntegerParameterAttributes"> 419 <xs:attribute name="Size" type="SizeType" use="required"/> 420 <xs:attribute name="Min" type="xs:integer" use="optional"/> 421 <xs:attribute name="Max" type="xs:integer" use="optional"/> 422 <xs:attribute name="Signed" type="xs:boolean" use="optional" default="false"/> 423 </xs:attributeGroup> 424 <xs:attributeGroup name="ArrayLengthAttribute"> 425 <xs:attribute name="ArrayLength" type="xs:nonNegativeInteger" use="optional" default="0"/> 426 </xs:attributeGroup> 427 <xs:complexType name="Adaptation"> 428 <xs:attribute name="Offset" type="xs:integer" default="0"/> 429 </xs:complexType> 430 <xs:complexType name="LinearAdaptationType"> 431 <xs:complexContent> 432 <xs:extension base="Adaptation"> 433 <xs:attribute name="SlopeNumerator" type="xs:double" default="1"/> 434 <xs:attribute name="SlopeDenominator" type="xs:double" default="1"/> 435 </xs:extension> 436 </xs:complexContent> 437 </xs:complexType> 438 <xs:element name="LinearAdaptation" type="LinearAdaptationType"/> 439 <xs:element name="LogarithmicAdaptation"> 440 <xs:complexType> 441 <xs:complexContent> 442 <xs:extension base="LinearAdaptationType"> 443 <xs:attribute name="LogarithmBase" type="xs:double" default="10"/> 444 <xs:attribute name="FloorValue" type="xs:double" default="-INF"/> 445 </xs:extension> 446 </xs:complexContent> 447 </xs:complexType> 448 </xs:element> 449<!-- BUG b/147297854 - removed abstract from Parameter definition --> 450 <xs:complexType name="Parameter"> 451 <xs:attributeGroup ref="Nameable"/> 452 <xs:attribute name="Mapping" type="xs:string" use="optional"/> 453 <xs:attributeGroup ref="ArrayLengthAttribute"/> 454 </xs:complexType> 455 <xs:element name="BooleanParameter"> 456 <xs:complexType> 457 <xs:complexContent> 458 <xs:extension base="Parameter"> 459 <xs:attribute name="Size" fixed="8" type="SizeType"/> 460 </xs:extension> 461 </xs:complexContent> 462 </xs:complexType> 463 </xs:element> 464 <xs:complexType name="IntegerParameterType"> 465 <xs:complexContent> 466 <xs:extension base="Parameter"> 467 <xs:choice minOccurs="0"> 468 <xs:element ref="LinearAdaptation"/> 469 <xs:element ref="LogarithmicAdaptation"/> 470 </xs:choice> 471 <xs:attributeGroup ref="IntegerParameterAttributes"/> 472 <xs:attribute name="Unit" type="xs:token" use="optional"/> 473 </xs:extension> 474 </xs:complexContent> 475 </xs:complexType> 476 <xs:element name="IntegerParameter" type="IntegerParameterType"/> 477 <xs:complexType name="EnumParameterType"> 478 <xs:complexContent> 479 <xs:extension base="Parameter"> 480 <xs:sequence> 481 <xs:element name="ValuePair" maxOccurs="unbounded"> 482 <xs:complexType> 483 <xs:attribute name="Literal" type="xs:string" use="required"/> 484 <xs:attribute name="Numerical" use="required"> 485 <xs:simpleType> 486 <xs:restriction base="xs:string"> 487 <xs:pattern value="0|[+-]?[1-9][0-9]*"/> 488 <xs:pattern value="0x[0-9a-fA-F]+"/> 489 </xs:restriction> 490 </xs:simpleType> 491 </xs:attribute> 492 </xs:complexType> 493 </xs:element> 494 </xs:sequence> 495 <xs:attribute name="Size" type="SizeType" use="required"/> 496 </xs:extension> 497 </xs:complexContent> 498 </xs:complexType> 499 <xs:element name="EnumParameter" type="EnumParameterType"> 500 <xs:unique name="LiteralUniqueness"> 501 <xs:selector xpath="ValuePair"/> 502 <xs:field xpath="@Literal"/> 503 </xs:unique> 504 <xs:unique name="NumericalUniqueness"> 505 <xs:selector xpath="ValuePair"/> 506 <xs:field xpath="@Numerical"/> 507 </xs:unique> 508 </xs:element> 509 <xs:simpleType name="PointBound"> 510 <xs:restriction base="xs:string"> 511 <xs:pattern value="(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?"/> 512 </xs:restriction> 513 </xs:simpleType> 514 <xs:complexType name="PointParameterType"> 515 <xs:complexContent> 516 <xs:extension base="Parameter"> 517 <xs:attribute name="Unit" type="xs:token" use="optional"/> 518 </xs:extension> 519 </xs:complexContent> 520 </xs:complexType> 521 <xs:complexType name="FixedPointParameterType"> 522 <xs:complexContent> 523 <xs:extension base="PointParameterType"> 524 <xs:attribute name="Size" type="SizeType" use="required"/> 525 <xs:attribute name="Integral" type="xs:nonNegativeInteger" use="required"/> 526 <xs:attribute name="Fractional" type="xs:nonNegativeInteger" use="required"/> 527 </xs:extension> 528 </xs:complexContent> 529 </xs:complexType> 530 <xs:element name="FixedPointParameter" type="FixedPointParameterType"/> 531 <xs:complexType name="FloatingPointParameterType"> 532 <xs:complexContent> 533 <xs:extension base="PointParameterType"> 534 <xs:attribute name="Size" fixed="32" type="SizeType"/> 535 <xs:attribute name="Min" type="PointBound" use="optional"/> 536 <xs:attribute name="Max" type="PointBound" use="optional"/> 537 </xs:extension> 538 </xs:complexContent> 539 </xs:complexType> 540 <xs:element name="FloatingPointParameter" type="FloatingPointParameterType"/> 541 <xs:complexType name="BitParameterType"> 542 <xs:attributeGroup ref="Nameable"/> 543 <xs:attribute name="Size" use="required"> 544 <xs:simpleType> 545 <xs:restriction base="xs:positiveInteger"> 546 <xs:maxInclusive value="64"/> 547 </xs:restriction> 548 </xs:simpleType> 549 </xs:attribute> 550 <xs:attribute name="Pos" use="required"> 551 <xs:simpleType> 552 <xs:restriction base="xs:nonNegativeInteger"> 553 <xs:maxInclusive value="63"/> 554 </xs:restriction> 555 </xs:simpleType> 556 </xs:attribute> 557 <xs:attribute name="Max" type="xs:integer" use="optional"/> 558 </xs:complexType> 559 <xs:element name="BitParameterBlock"> 560 <xs:complexType> 561 <xs:sequence> 562 <xs:element name="BitParameter" type="BitParameterType" maxOccurs="unbounded"/> 563 </xs:sequence> 564 <xs:attributeGroup ref="Nameable"/> 565 <xs:attribute name="Size" type="SizeType64" use="required"/> 566 <xs:attribute name="Mapping" type="xs:string" use="optional"/> 567 </xs:complexType> 568 <xs:unique name="BitParameterBlockSubElementsUniqueness"> 569 <xs:selector xpath="*"/> 570 <xs:field xpath="@Name"/> 571 </xs:unique> 572 </xs:element> 573 <xs:element name="StringParameter"> 574 <xs:complexType> 575 <xs:attributeGroup ref="Nameable"/> 576 <xs:attribute name="Mapping" type="xs:string" use="optional"/> 577 <xs:attribute name="MaxLength" type="xs:nonNegativeInteger" use="required"/> 578 </xs:complexType> 579 </xs:element> 580 <xs:group name="ParameterBlockGroup"> 581 <xs:choice> 582 <xs:element ref="BooleanParameter"/> 583 <xs:element ref="IntegerParameter"/> 584 <xs:element ref="EnumParameter"/> 585 <xs:element ref="FixedPointParameter"/> 586 <xs:element ref="FloatingPointParameter"/> 587 <xs:element ref="BitParameterBlock"/> 588 <xs:element ref="StringParameter"/> 589 <xs:element name="Component" type="ComponentInstance"/> 590 <xs:element name="ParameterBlock" type="ParameterBlockType"> 591 <xs:unique name="ParameterBlockSubElementsUniqueness"> 592 <xs:selector xpath="*"/> 593 <xs:field xpath="@Name"/> 594 </xs:unique> 595 </xs:element> 596 </xs:choice> 597 </xs:group> 598 <xs:complexType name="ParameterBlockType"> 599 <xs:sequence> 600 <xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/> 601 </xs:sequence> 602 <xs:attributeGroup ref="Nameable"/> 603 <xs:attributeGroup ref="ArrayLengthAttribute"/> 604 <xs:attribute name="Mapping" type="xs:string" use="optional"/> 605 </xs:complexType> 606 <!-- END Parameter.xsd --> 607 608 <!-- BEGIN ComponentTypeSet.xsd --> 609 <xs:complexType name="ComponentType"> 610 <xs:sequence> 611 <xs:sequence> 612 <xs:group ref="ParameterBlockGroup"/> 613 </xs:sequence> 614 </xs:sequence> 615 <xs:attributeGroup ref="Nameable"/> 616 <xs:attribute name="Extends" use="optional" type="xs:NMTOKEN"/> 617 <xs:attribute name="Mapping" use="optional" type="xs:string"/> 618 </xs:complexType> 619 <xs:group name="ComponentTypeSetGroup"> 620 <xs:choice> 621 <xs:element name="ComponentLibrary" type="ComponentTypeSetType"/> 622 <xs:element name="ComponentTypeSet" type="ComponentTypeSetType"/> 623 <xs:element name="ComponentType" type="ComponentType"> 624 <xs:unique name="ComponentTypeSubElementsUniqueness"> 625 <xs:selector xpath="*"/> 626 <xs:field xpath="@Name"/> 627 </xs:unique> 628 </xs:element> 629 </xs:choice> 630 </xs:group> 631 <xs:complexType name="ComponentTypeSetType"> 632 <xs:sequence> 633 <xs:group ref="ComponentTypeSetGroup" minOccurs="0" maxOccurs="unbounded"/> 634 </xs:sequence> 635 <xs:attribute ref="xml:base"/> 636 </xs:complexType> 637 <xs:element name="ComponentTypeSet" type="ComponentTypeSetType"> 638 <xs:unique name="ComponentTypeUniquenessInComponentTypeSet"> 639 <xs:selector xpath=".//ComponentType"/> 640 <xs:field xpath="@Name"/> 641 </xs:unique> 642 </xs:element> 643 <!-- END ComponentTypeSet.xsd --> 644 645 <!-- BEGIN ComponentLibrary.xsd --> 646 <xs:element name="ComponentLibrary" type="ComponentTypeSetType"> 647 <xs:key name="ComponentTypeUniqueness"> 648 <xs:selector xpath=".//ComponentType"/> 649 <xs:field xpath="@Name"/> 650 </xs:key> 651 <xs:keyref name="ComponentTypeNotFound" refer="ComponentTypeUniqueness"> 652 <xs:selector xpath=".//ComponentType/Component"/> 653 <xs:field xpath="@Type"/> 654 </xs:keyref> 655 </xs:element> 656 <!-- END ComponentLibrary.xsd --> 657 658 <!-- BEGIN Subsystem.xsd --> 659 <xs:complexType name="SubsystemType"> 660 <xs:sequence> 661 <xs:element ref="ComponentLibrary"/> 662 <xs:element name="InstanceDefinition"> 663 <xs:complexType> 664 <xs:sequence> 665 <xs:sequence> 666 <xs:group ref="ParameterBlockGroup"/> 667 </xs:sequence> 668 </xs:sequence> 669 </xs:complexType> 670 <xs:unique name="InstanceDefinitionSubElementsUniqueness"> 671 <xs:selector xpath="*"/> 672 <xs:field xpath="@Name"/> 673 </xs:unique> 674 </xs:element> 675 </xs:sequence> 676 <xs:attributeGroup ref="Nameable"/> 677 <xs:attribute name="Type" use="required" type="xs:NMTOKEN"/> 678 <xs:attribute name="Mapping" use="optional" type="xs:string"/> 679 </xs:complexType> 680 <xs:element name="Subsystem" type="SubsystemType"> 681 <xs:keyref name="InstanceDefinitionComponentTypeNotFound" refer="ComponentTypeUniqueness"> 682 <xs:selector xpath="InstanceDefinition/Component"/> 683 <xs:field xpath="@Type"/> 684 </xs:keyref> 685 </xs:element> 686 <!-- END Subsystem.xsd --> 687 688 <!-- BEGIN FileIncluder.xsd --> 689 <xs:complexType name="FileIncluderType"> 690 <xs:annotation> 691 <xs:documentation>Element type used to import a root element from a file.</xs:documentation> 692 </xs:annotation> 693 <xs:attribute name="Path" type="xs:anyURI" use="required"> 694 <xs:annotation> 695 <xs:documentation>Path to the file to import. 696This path may be absolute or relative to the path of the includer file.</xs:documentation> 697 </xs:annotation> 698 </xs:attribute> 699 </xs:complexType> 700 <!-- END FileIncluder.xsd --> 701 702 <!-- BEGIN SystemClass.xsd --> 703 <xs:element name="SystemClass"> 704 <xs:complexType> 705 <xs:sequence> 706 <xs:choice maxOccurs="unbounded"> 707 <xs:element name="SubsystemInclude" type="FileIncluderType"/> 708 <xs:element ref="Subsystem"/> 709 </xs:choice> 710 </xs:sequence> 711 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 712 </xs:complexType> 713 </xs:element> 714 <!-- END SystemClass.xsd --> 715 716 <!-- BEGIN ParameterFrameworkConfiguration.xsd --> 717 <xs:complexType name="ConfigurationFilePath"> 718 <xs:attribute name="Path" type="xs:anyURI" use="required"/> 719 </xs:complexType> 720 <xs:complexType name="PluginFile"> 721 <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/> 722 </xs:complexType> 723 <xs:complexType name="PluginLocation"> 724 <xs:sequence> 725 <xs:element name="Plugin" type="PluginFile" maxOccurs="unbounded" minOccurs="0"/> 726 </xs:sequence> 727 <xs:attribute name="Folder" type="xs:anyURI" use="required"/> 728 </xs:complexType> 729 <xs:element name="SubsystemPlugins"> 730 <xs:complexType> 731 <xs:sequence> 732 <xs:element name="Location" type="PluginLocation" maxOccurs="unbounded" minOccurs="0"/> 733 </xs:sequence> 734 </xs:complexType> 735 </xs:element> 736 <xs:complexType name="SettingsConfigurationType"> 737 <xs:sequence> 738 <xs:element name="ConfigurableDomainsFileLocation" type="ConfigurationFilePath"/> 739 </xs:sequence> 740 </xs:complexType> 741 <xs:element name="ParameterFrameworkConfiguration"> 742 <xs:complexType> 743 <xs:sequence> 744 <xs:element ref="SubsystemPlugins" /> 745 <xs:element name="StructureDescriptionFileLocation" type="ConfigurationFilePath"/> 746 <xs:element name="SettingsConfiguration" type="SettingsConfigurationType" minOccurs="0"/> 747 </xs:sequence> 748 <xs:attribute name="SystemClassName" use="required" type="xs:NMTOKEN"/> 749 <xs:attribute name="ServerPort" use="required" type="xs:string"/> 750 <xs:attribute name="TuningAllowed" use="required" type="xs:boolean"/> 751 </xs:complexType> 752 </xs:element> 753 <!-- END ParameterFrameworkConfiguration.xsd --> 754</xs:schema> 755