aboutsummaryrefslogtreecommitdiffstats
path: root/Schemas/Subsystem.xsd
diff options
context:
space:
mode:
Diffstat (limited to 'Schemas/Subsystem.xsd')
-rw-r--r--Schemas/Subsystem.xsd82
1 files changed, 82 insertions, 0 deletions
diff --git a/Schemas/Subsystem.xsd b/Schemas/Subsystem.xsd
new file mode 100644
index 0000000..bd2e091
--- /dev/null
+++ b/Schemas/Subsystem.xsd
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema generated by XMLSpy v2007 (http://www.altova.com)-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:include schemaLocation="Parameter.xsd"/>
+ <xs:attributeGroup name="TypedNameable">
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Type" type="xs:NMTOKEN" use="required"/>
+ </xs:attributeGroup>
+ <xs:complexType name="ComponentInstance">
+ <xs:attributeGroup ref="TypedNameable"/>
+ <xs:attribute name="Mapping" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="ComponentType">
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="ParameterBlockGroup"/>
+ <xs:element name="Component" type="ComponentInstance"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Extends" use="optional"/>
+ <xs:attribute name="Mapping" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="SubsystemType">
+ <xs:sequence>
+ <xs:element name="ComponentLibrary">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="ComponentType" type="ComponentType" minOccurs="0" maxOccurs="unbounded">
+ <xs:unique name="ComponentTypeSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="InstanceDefinition">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="ParameterBlockGroup"/>
+ <xs:element name="Component" type="ComponentInstance"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:unique name="InstanceDefintionSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Endianness" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Little"/>
+ <xs:enumeration value="Big"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Type" use="required"/>
+ </xs:complexType>
+ <xs:element name="Subsystem" type="SubsystemType">
+ <xs:key name="ComponentTypeUniqueness">
+ <xs:selector xpath="ComponentLibrary/ComponentType"/>
+ <xs:field xpath="@Name"/>
+ </xs:key>
+ <xs:keyref name="InstanceDefinitionComponentTypeNotFound" refer="ComponentTypeUniqueness">
+ <xs:selector xpath="InstanceDefinition/Component"/>
+ <xs:field xpath="@Type"/>
+ </xs:keyref>
+ <xs:keyref name="ComponentTypeNotFound" refer="ComponentTypeUniqueness">
+ <xs:selector xpath="ComponentLibrary/ComponentType/Component"/>
+ <xs:field xpath="@Type"/>
+ </xs:keyref>
+ <!--xs:keyref name="ExtendedComponentTypeNotFound" refer="ComponentTypeUniqueness">
+ <xs:selector xpath="ComponentLibrary/ComponentType"/>
+ <xs:field xpath="@Extends"/>
+ </xs:keyref-->
+ </xs:element>
+</xs:schema>