diff options
Diffstat (limited to 'Schemas/ConfigurableDomains.xsd')
-rw-r--r-- | Schemas/ConfigurableDomains.xsd | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/Schemas/ConfigurableDomains.xsd b/Schemas/ConfigurableDomains.xsd new file mode 100644 index 0000000..d306c64 --- /dev/null +++ b/Schemas/ConfigurableDomains.xsd @@ -0,0 +1,147 @@ +<?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:choice> + <xs:group ref="ParameterBlockGroup"/> + <xs:element name="Component" type="ComponentType"/> + </xs:choice> + </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:group ref="ComponentGroup"/> + <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="ConfigurableDomains"> + <xs:complexType> + <xs:sequence> + <xs:element maxOccurs="unbounded" name="ConfigurableDomain" type="ConfigurableDomainType"> + <xs:key name="ConfigurableElementKey"> + <xs:selector xpath="ConfigurableElements/ConfigurableElement"/> + <xs:field xpath="@Path"/> + </xs:key> + <xs:keyref refer="ConfigurableElementKey" name="ConfigurableDomainReference"> + <xs:selector xpath="Settings/Configuration/ConfigurableElement"/> + <xs:field xpath="@Path"/> + </xs:keyref> + <xs:key name="ConfigurationKey"> + <xs:selector xpath="Configurations/Configuration"/> + <xs:field xpath="@Name"/> + </xs:key> + <xs:keyref refer="ConfigurationKey" name="ConfigurationReference2"> + <xs:selector xpath="ConfigurableElements/ConfigurableElement/Configuration"/> + <xs:field xpath="@Name"/> + </xs:keyref> + <xs:keyref refer="ConfigurationKey" name="ConfigurationReference"> + <xs:selector xpath="Settings/Configuration"/> + <xs:field xpath="@Name"/> + </xs:keyref> + </xs:element> + </xs:sequence> + <xs:attribute name="SystemClassName" use="required" type="xs:NCName"/> + </xs:complexType> + <xs:unique name="ConfigurableDomainUniqueness"> + <xs:selector xpath="ConfigurableDomain"/> + <xs:field xpath="@Name"/> + </xs:unique> + </xs:element> +</xs:schema> |