1<?xml version="1.0" encoding="UTF-8"?>
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
3	<xs:include schemaLocation="ParameterSettings.xsd"/>
4	<xs:complexType name="SelectionCriterionRuleType">
5		<xs:attribute name="SelectionCriterion" type="xs:NMTOKEN" use="required"/>
6		<xs:attribute name="MatchesWhen" use="required">
7			<xs:simpleType>
8				<xs:restriction base="xs:NMTOKEN">
9					<xs:enumeration value="Is"/>
10					<xs:enumeration value="IsNot"/>
11					<xs:enumeration value="Includes"/>
12					<xs:enumeration value="Excludes"/>
13				</xs:restriction>
14			</xs:simpleType>
15		</xs:attribute>
16		<xs:attribute name="Value" use="required"/>
17	</xs:complexType>
18	<xs:group name="RuleGroup">
19		<xs:choice>
20			<xs:element name="CompoundRule" type="CompoundRuleType"/>
21			<xs:element name="SelectionCriterionRule" type="SelectionCriterionRuleType"/>
22		</xs:choice>
23	</xs:group>
24	<xs:complexType name="CompoundRuleType">
25		<xs:sequence>
26			<xs:group ref="RuleGroup" minOccurs="0" maxOccurs="unbounded"/>
27		</xs:sequence>
28		<xs:attribute name="Type">
29			<xs:simpleType>
30				<xs:restriction base="xs:NMTOKEN">
31					<xs:enumeration value="Any"/>
32					<xs:enumeration value="All"/>
33				</xs:restriction>
34			</xs:simpleType>
35		</xs:attribute>
36	</xs:complexType>
37	<xs:complexType name="ConfigurationsType">
38		<xs:sequence>
39			<xs:element maxOccurs="unbounded" name="Configuration">
40				<xs:complexType>
41					<xs:sequence>
42						<xs:element name="CompoundRule" type="CompoundRuleType" minOccurs="0" maxOccurs="1"/>
43					</xs:sequence>
44					<xs:attribute name="Name" use="required" type="xs:NCName"/>
45				</xs:complexType>
46			</xs:element>
47		</xs:sequence>
48	</xs:complexType>
49	<xs:group name="ComponentGroup">
50		<xs:sequence>
51			<xs:group ref="ParameterBlockGroup"/>
52		</xs:sequence>
53	</xs:group>
54	<xs:complexType name="ComponentType">
55		<xs:sequence>
56			<xs:choice>
57				<xs:group ref="ComponentGroup" maxOccurs="unbounded"/>
58				<xs:element name="Subsystem" type="ComponentType" maxOccurs="unbounded"/>
59			</xs:choice>
60		</xs:sequence>
61		<xs:attribute name="Name" use="required" type="xs:NCName"/>
62	</xs:complexType>
63	<xs:complexType name="ConfigurableElementsType">
64		<xs:sequence>
65			<xs:element maxOccurs="unbounded" minOccurs="0" name="ConfigurableElement">
66				<xs:complexType>
67					<xs:attribute name="Path" use="required">
68						<xs:simpleType>
69							<xs:restriction base="xs:anyURI">
70								<xs:pattern value="/.*[^/]"/>
71							</xs:restriction>
72						</xs:simpleType>
73					</xs:attribute>
74				</xs:complexType>
75			</xs:element>
76		</xs:sequence>
77	</xs:complexType>
78	<xs:complexType name="ConfigurableElementSettingsType">
79		<xs:choice>
80			<xs:element name="BitParameter" type="IntegerParameterType"/>
81			<xs:group ref="ComponentGroup"/>
82		</xs:choice>
83		<xs:attribute name="Path" use="required">
84			<xs:simpleType>
85				<xs:restriction base="xs:anyURI">
86					<xs:pattern value="/.*[^/]"/>
87				</xs:restriction>
88			</xs:simpleType>
89		</xs:attribute>
90	</xs:complexType>
91	<xs:complexType name="SettingsType">
92		<xs:sequence>
93			<xs:element maxOccurs="unbounded" minOccurs="0" name="Configuration">
94				<xs:complexType>
95					<xs:sequence>
96						<xs:element name="ConfigurableElement" minOccurs="0" maxOccurs="unbounded" type="ConfigurableElementSettingsType"/>
97					</xs:sequence>
98					<xs:attribute name="Name" use="required" type="xs:NCName"/>
99				</xs:complexType>
100				<xs:unique name="ConfigurableElementUniqueness">
101					<xs:selector xpath="ConfigurableElement"/>
102					<xs:field xpath="@Path"/>
103				</xs:unique>
104			</xs:element>
105		</xs:sequence>
106	</xs:complexType>
107	<xs:complexType name="ConfigurableDomainType">
108		<xs:sequence>
109			<xs:element name="Configurations" type="ConfigurationsType"/>
110			<xs:element name="ConfigurableElements" type="ConfigurableElementsType"/>
111			<xs:element name="Settings" type="SettingsType" minOccurs="0"/>
112		</xs:sequence>
113		<xs:attribute name="Name" use="required" type="xs:NCName"/>
114		<xs:attribute name="SequenceAware" use="optional" type="xs:boolean" default="false"/>
115	</xs:complexType>
116	<xs:element name="ConfigurableDomain" type="ConfigurableDomainType"/>
117</xs:schema>
118