summaryrefslogtreecommitdiffstats
path: root/Schemas
diff options
context:
space:
mode:
Diffstat (limited to 'Schemas')
-rw-r--r--Schemas/ComponentLibrary.xsd15
-rw-r--r--Schemas/ComponentTypeSet.xsd39
-rw-r--r--Schemas/Parameter.xsd8
-rw-r--r--Schemas/Subsystem.xsd47
4 files changed, 65 insertions, 44 deletions
diff --git a/Schemas/ComponentLibrary.xsd b/Schemas/ComponentLibrary.xsd
new file mode 100644
index 0000000..09d2e27
--- /dev/null
+++ b/Schemas/ComponentLibrary.xsd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2005/08/xml.xsd"/>
+ <xs:include schemaLocation="ComponentTypeSet.xsd"/>
+ <xs:element name="ComponentLibrary" type="ComponentTypeSetType">
+ <xs:key name="ComponentTypeUniqueness">
+ <xs:selector xpath=".//ComponentType"/>
+ <xs:field xpath="@Name"/>
+ </xs:key>
+ <xs:keyref name="ComponentTypeNotFound" refer="ComponentTypeUniqueness">
+ <xs:selector xpath=".//ComponentType/Component"/>
+ <xs:field xpath="@Type"/>
+ </xs:keyref>
+ </xs:element>
+</xs:schema>
diff --git a/Schemas/ComponentTypeSet.xsd b/Schemas/ComponentTypeSet.xsd
new file mode 100644
index 0000000..d00be00
--- /dev/null
+++ b/Schemas/ComponentTypeSet.xsd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2005/08/xml.xsd"/>
+ <xs:include schemaLocation="Parameter.xsd"/>
+ <xs:complexType name="ComponentType">
+ <xs:sequence>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:group ref="ParameterBlockGroup"/>
+ </xs:sequence>
+ </xs:sequence>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Extends" use="optional"/>
+ <xs:attribute name="Mapping" use="optional"/>
+ </xs:complexType>
+ <xs:group name="ComponentTypeSetGroup">
+ <xs:choice>
+ <xs:element name="ComponentLibrary" type="ComponentTypeSetType"/>
+ <xs:element name="ComponentTypeSet" type="ComponentTypeSetType"/>
+ <xs:element name="ComponentType" type="ComponentType">
+ <xs:unique name="ComponentTypeSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ComponentTypeSetType">
+ <xs:sequence>
+ <xs:group ref="ComponentTypeSetGroup" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute ref="xml:base"/>
+ </xs:complexType>
+ <xs:element name="ComponentTypeSet" type="ComponentTypeSetType">
+ <xs:unique name="ComponentTypeUniquenessInComponentTypeSet">
+ <xs:selector xpath=".//ComponentType"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+</xs:schema>
diff --git a/Schemas/Parameter.xsd b/Schemas/Parameter.xsd
index ad3d739..3b635fc 100644
--- a/Schemas/Parameter.xsd
+++ b/Schemas/Parameter.xsd
@@ -4,6 +4,14 @@
<xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
<xs:attribute name="Description" type="xs:string" use="optional"/>
</xs:attributeGroup>
+ <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:simpleType name="SizeType">
<xs:restriction base="xs:positiveInteger">
<xs:pattern value="8|16|32"/>
diff --git a/Schemas/Subsystem.xsd b/Schemas/Subsystem.xsd
index aa2c35c..ab0fdf6 100644
--- a/Schemas/Subsystem.xsd
+++ b/Schemas/Subsystem.xsd
@@ -1,39 +1,10 @@
<?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:sequence maxOccurs="unbounded">
- <xs:group ref="ParameterBlockGroup"/>
- </xs:sequence>
- </xs:sequence>
- <xs:attributeGroup ref="Nameable"/>
- <xs:attribute name="Extends" use="optional"/>
- <xs:attribute name="Mapping" use="optional"/>
- </xs:complexType>
+ <xs:include schemaLocation="ComponentLibrary.xsd"/>
<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 ref="ComponentLibrary"/>
<xs:element name="InstanceDefinition">
<xs:complexType>
<xs:sequence>
@@ -60,21 +31,9 @@
<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:keyref>
</xs:element>
</xs:schema>