<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:include schemaLocation="ParameterSettings.xsd"/> <xs:complexType name="SelectionCriterionRuleType"> <xs:attribute name="SelectionCriterion" type="xs:NMTOKEN" use="required"/> <xs:attribute name="MatchesWhen" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="Is"/> <xs:enumeration value="IsNot"/> <xs:enumeration value="Includes"/> <xs:enumeration value="Excludes"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="Value" use="required"/> </xs:complexType> <xs:group name="RuleGroup"> <xs:choice> <xs:element name="CompoundRule" type="CompoundRuleType"/> <xs:element name="SelectionCriterionRule" type="SelectionCriterionRuleType"/> </xs:choice> </xs:group> <xs:complexType name="CompoundRuleType"> <xs:sequence> <xs:group ref="RuleGroup" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="Type"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="Any"/> <xs:enumeration value="All"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="ConfigurationsType"> <xs:sequence> <xs:element maxOccurs="unbounded" name="Configuration"> <xs:complexType> <xs:sequence> <xs:element name="CompoundRule" type="CompoundRuleType" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute name="Name" use="required" type="xs:NCName"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:group name="ComponentGroup"> <xs:sequence> <xs:group ref="ParameterBlockGroup"/> </xs:sequence> </xs:group> <xs:complexType name="ComponentType"> <xs:sequence> <xs:choice> <xs:group ref="ComponentGroup" maxOccurs="unbounded"/> <xs:element name="Subsystem" type="ComponentType" maxOccurs="unbounded"/> </xs:choice> </xs:sequence> <xs:attribute name="Name" use="required" type="xs:NCName"/> </xs:complexType> <xs:complexType name="ConfigurableElementsType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="ConfigurableElement"> <xs:complexType> <xs:attribute name="Path" use="required"> <xs:simpleType> <xs:restriction base="xs:anyURI"> <xs:pattern value="/.*[^/]"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ConfigurableElementSettingsType"> <xs:choice> <xs:element name="BitParameter" type="IntegerParameterType"/> <xs:group ref="ComponentGroup"/> </xs:choice> <xs:attribute name="Path" use="required"> <xs:simpleType> <xs:restriction base="xs:anyURI"> <xs:pattern value="/.*[^/]"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <xs:complexType name="SettingsType"> <xs:sequence> <xs:element maxOccurs="unbounded" minOccurs="0" name="Configuration"> <xs:complexType> <xs:sequence> <xs:element name="ConfigurableElement" minOccurs="0" maxOccurs="unbounded" type="ConfigurableElementSettingsType"/> </xs:sequence> <xs:attribute name="Name" use="required" type="xs:NCName"/> </xs:complexType> <xs:unique name="ConfigurableElementUniqueness"> <xs:selector xpath="ConfigurableElement"/> <xs:field xpath="@Path"/> </xs:unique> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="ConfigurableDomainType"> <xs:sequence> <xs:element name="Configurations" type="ConfigurationsType"/> <xs:element name="ConfigurableElements" type="ConfigurableElementsType"/> <xs:element name="Settings" type="SettingsType" minOccurs="0"/> </xs:sequence> <xs:attribute name="Name" use="required" type="xs:NCName"/> <xs:attribute name="SequenceAware" use="optional" type="xs:boolean" default="false"/> </xs:complexType> <xs:element name="ConfigurableDomain" type="ConfigurableDomainType"/> </xs:schema>