diff options
author | Patrick Benavoli <patrickx.benavoli@intel.com> | 2011-11-07 20:32:51 +0100 |
---|---|---|
committer | David Wagner <david.wagner@intel.com> | 2014-02-10 17:14:59 +0100 |
commit | 95ac034b72580306e9246f7efa3f7ba709a02183 (patch) | |
tree | 9dc36b32d1ff881132b3424d761aa3b06c06717d /Schemas | |
parent | 99041c5b5ed90dd66c65fa1903a74f5f3f9a8fdc (diff) | |
download | external_parameter-framework-95ac034b72580306e9246f7efa3f7ba709a02183.zip external_parameter-framework-95ac034b72580306e9246f7efa3f7ba709a02183.tar.gz external_parameter-framework-95ac034b72580306e9246f7efa3f7ba709a02183.tar.bz2 |
PFW: file organization
BZ: 12888, 12925, 13285, 13289
- Removed hard coded paths from source files
- Separated test related resources and programs into a test subfolder
- Schemas folder at root containing the schemas, a symbolic link to that folder
might be a good way to enable schema aware editing
- Now global configuration file path is passed from the hosting platform
instead of the class name.
- Global configuration path contains only the relevant class related
descriptions (plugin paths, structure, settings)
- .user environment file eclipsed through git-ignore (and removed from
projects)
- Removed system class configuration obsolete files
Change-Id: I99b783ba22bca05238a760b2127939a91e976be8
Signed-off-by: Patrick Benavoli <patrickx.benavoli@intel.com>
Reviewed-on: http://android.intel.com:8080/25404
Reviewed-by: Barthes, FabienX <fabienx.barthes@intel.com>
Tested-by: Barthes, FabienX <fabienx.barthes@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'Schemas')
-rw-r--r-- | Schemas/ConfigurableDomains.xsd | 147 | ||||
-rw-r--r-- | Schemas/FileIncluder.xsd | 15 | ||||
-rw-r--r-- | Schemas/Parameter.xsd | 149 | ||||
-rw-r--r-- | Schemas/ParameterFrameworkConfiguration.xsd | 32 | ||||
-rw-r--r-- | Schemas/ParameterSettings.xsd | 92 | ||||
-rw-r--r-- | Schemas/Subsystem.xsd | 82 | ||||
-rw-r--r-- | Schemas/SystemClass.xsd | 17 |
7 files changed, 534 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> diff --git a/Schemas/FileIncluder.xsd b/Schemas/FileIncluder.xsd new file mode 100644 index 0000000..3278aea --- /dev/null +++ b/Schemas/FileIncluder.xsd @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Samuel Gravez (Siemens VDO S.A.S.) -->
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:complexType name="FileIncluderType">
+ <xs:annotation>
+ <xs:documentation>Element type used to import a root element from a file.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="Path" type="xs:anyURI" use="required">
+ <xs:annotation>
+ <xs:documentation>Path to the file to import.
+This path may be absolute or relative to the path of the includer file.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+</xs:schema>
diff --git a/Schemas/Parameter.xsd b/Schemas/Parameter.xsd new file mode 100644 index 0000000..17d256a --- /dev/null +++ b/Schemas/Parameter.xsd @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:attributeGroup name="Nameable">
+ <xs:attribute name="Name" type="xs:NCName" use="required"/>
+ <xs:attribute name="Description" type="xs:string" use="optional"/>
+ </xs:attributeGroup>
+ <xs:simpleType name="SizeType">
+ <xs:restriction base="xs:positiveInteger">
+ <xs:pattern value="8|16|32"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:attributeGroup name="IntegerParameterAttributes">
+ <xs:attribute name="Size" type="SizeType" use="required"/>
+ <xs:attribute name="Min" type="xs:integer" use="optional"/>
+ <xs:attribute name="Max" type="xs:integer" use="optional"/>
+ <xs:attribute name="Signed" type="xs:boolean" use="optional" default="false"/>
+ </xs:attributeGroup>
+ <xs:attributeGroup name="ArrayLengthAttribute">
+ <xs:attribute name="ArrayLength" type="xs:nonNegativeInteger" use="optional" default="0"/>
+ </xs:attributeGroup>
+ <xs:complexType name="Parameter" abstract="true">
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Mapping" type="xs:string" use="optional"/>
+ <xs:attributeGroup ref="ArrayLengthAttribute"/>
+ </xs:complexType>
+ <xs:element name="BooleanParameter">
+ <xs:complexType>
+ <xs:complexContent>
+ <xs:extension base="Parameter">
+ <xs:attribute name="Size" fixed="8"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:complexType name="IntegerParameterType">
+ <xs:complexContent>
+ <xs:extension base="Parameter">
+ <xs:attributeGroup ref="IntegerParameterAttributes"/>
+ <xs:attribute name="Unit" type="xs:token" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="IntegerParameter" type="IntegerParameterType"/>
+ <xs:complexType name="EnumParameterType">
+ <xs:complexContent>
+ <xs:extension base="Parameter">
+ <xs:sequence>
+ <xs:element name="ValuePair" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="Literal" type="xs:NMTOKEN" use="required"/>
+ <xs:attribute name="Numerical" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="0|[+-]?[1-9][0-9]*"/>
+ <xs:pattern value="0x[0-9a-fA-F]+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="Size" type="SizeType" use="required"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="EnumParameter" type="EnumParameterType">
+ <xs:unique name="LiteralUniqueness">
+ <xs:selector xpath="ValuePair"/>
+ <xs:field xpath="@Literal"/>
+ </xs:unique>
+ <xs:unique name="NumericalUniqueness">
+ <xs:selector xpath="ValuePair"/>
+ <xs:field xpath="@Numerical"/>
+ </xs:unique>
+ </xs:element>
+ <xs:complexType name="FixedPointParameterType">
+ <xs:complexContent>
+ <xs:extension base="Parameter">
+ <xs:attribute name="Size" type="SizeType" use="required"/>
+ <xs:attribute name="Integral" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="Fractional" type="xs:nonNegativeInteger" use="required"/>
+ <xs:attribute name="Unit" type="xs:token" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="FixedPointParameter" type="FixedPointParameterType"/>
+ <xs:complexType name="BitParameterType">
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Size" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:positiveInteger">
+ <xs:maxInclusive value="32"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="Pos" use="required">
+ <xs:simpleType>
+ <xs:restriction base="xs:nonNegativeInteger">
+ <xs:maxInclusive value="31"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:complexType>
+ <xs:element name="BitParameterBlock">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="BitParameter" type="BitParameterType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Size" type="SizeType" use="required"/>
+ <xs:attribute name="Mapping" type="xs:string" use="optional"/>
+ </xs:complexType>
+ <xs:unique name="BitParameterBlockSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="StringParameter">
+ <xs:complexType>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attribute name="Mapping" type="xs:string" use="optional"/>
+ <xs:attribute name="MaxLength" type="xs:nonNegativeInteger" use="required"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:group name="ParameterBlockGroup">
+ <xs:choice>
+ <xs:element ref="BooleanParameter"/>
+ <xs:element ref="IntegerParameter"/>
+ <xs:element ref="EnumParameter"/>
+ <xs:element ref="FixedPointParameter"/>
+ <xs:element ref="BitParameterBlock"/>
+ <xs:element ref="StringParameter"/>
+ <xs:element name="ParameterBlock" type="ParameterBlockType">
+ <xs:unique name="ParameterBlockSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ParameterBlockType">
+ <xs:sequence>
+ <xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attributeGroup ref="Nameable"/>
+ <xs:attributeGroup ref="ArrayLengthAttribute"/>
+ <xs:attribute name="Mapping" type="xs:string" use="optional"/>
+ </xs:complexType>
+</xs:schema>
diff --git a/Schemas/ParameterFrameworkConfiguration.xsd b/Schemas/ParameterFrameworkConfiguration.xsd new file mode 100644 index 0000000..d84d108 --- /dev/null +++ b/Schemas/ParameterFrameworkConfiguration.xsd @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--W3C Schema generated by XMLSpy v2011 sp1 (http://www.altova.com)--> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> + <xs:complexType name="ConfigurationFilePath"> + <xs:attribute name="Path" type="xs:anyURI" use="required"/> + </xs:complexType> + <xs:element name="SubsystemPluginFolders"> + <xs:complexType> + <xs:sequence> + <xs:element name="PluginFolderLocation" type="ConfigurationFilePath" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:complexType name="SettingsConfigurationType"> + <xs:sequence> + <xs:element name="ConfigurableDomainsFileLocation" type="ConfigurationFilePath"/> + <xs:element name="BinarySettingsFileLocation" type="ConfigurationFilePath" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + <xs:element name="ParameterFrameworkConfiguration"> + <xs:complexType> + <xs:sequence> + <xs:element ref="SubsystemPluginFolders"/> + <xs:element name="StructureDescriptionFileLocation" type="ConfigurationFilePath"/> + <xs:element name="SettingsConfiguration" type="SettingsConfigurationType" minOccurs="0"/> + </xs:sequence> + <xs:attribute name="SystemClassName" use="required" type="xs:NMTOKEN"/> + <xs:attribute name="ServerPort" use="required" type="xs:positiveInteger"/> + <xs:attribute name="TuningAllowed" use="required" type="xs:boolean"/> + </xs:complexType> + </xs:element> +</xs:schema> diff --git a/Schemas/ParameterSettings.xsd b/Schemas/ParameterSettings.xsd new file mode 100644 index 0000000..d0a14fe --- /dev/null +++ b/Schemas/ParameterSettings.xsd @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
+ <xs:complexType name="ParameterType" abstract="true">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
+ <xs:attribute name="ValueSpace" use="optional">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Raw"/>
+ <xs:enumeration value="Real"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="BooleanParameterType">
+ <xs:simpleContent>
+ <xs:restriction base="ParameterType">
+ <xs:pattern value="([01][\s]*)+"/>
+ <xs:pattern value="((0x0|0x1)[\s]*)+"/>
+ <xs:attribute name="ValueSpace" use="prohibited"/>
+ </xs:restriction>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="IntegerParameterType">
+ <xs:simpleContent>
+ <xs:restriction base="ParameterType">
+ <xs:pattern value="(0|[+-]?[1-9][0-9]*[\s]*)+"/>
+ <xs:pattern value="(0x[0-9a-fA-F]+\s*)+"/>
+ <xs:attribute name="ValueSpace" use="prohibited"/>
+ </xs:restriction>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="EnumParameterType">
+ <xs:simpleContent>
+ <xs:restriction base="ParameterType">
+ <xs:attribute name="ValueSpace" use="prohibited"/>
+ </xs:restriction>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="FixedPointParameterType">
+ <xs:simpleContent>
+ <xs:restriction base="ParameterType">
+ <xs:pattern value="((0|[+-]?[1-9][0-9]*)\s*)+"/>
+ <xs:pattern value="(0\.0|[+-]?([1-9][0-9]*|0)(\.[0-9]+)?\s*)+"/>
+ <xs:pattern value="(0x[0-9a-fA-F]+\s*)+"/>
+ </xs:restriction>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="BitParameterBlockType">
+ <xs:sequence>
+ <xs:element name="BitParameter" maxOccurs="unbounded" type="IntegerParameterType"/>
+ </xs:sequence>
+ <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="StringParameterType">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:group name="ParameterBlockGroup">
+ <xs:choice>
+ <xs:element name="BooleanParameter" type="BooleanParameterType"/>
+ <xs:element name="IntegerParameter" type="IntegerParameterType"/>
+ <xs:element name="EnumParameter" type="EnumParameterType"/>
+ <xs:element name="FixedPointParameter" type="FixedPointParameterType"/>
+ <xs:element name="BitParameterBlock" type="BitParameterBlockType">
+ <xs:unique name="BitParameterBlockSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="StringParameter" type="StringParameterType"/>
+ <xs:element name="ParameterBlock" type="ParameterBlockType">
+ <xs:unique name="ParameterBlockSubElementsUniqueness">
+ <xs:selector xpath="*"/>
+ <xs:field xpath="@Name"/>
+ </xs:unique>
+ </xs:element>
+ </xs:choice>
+ </xs:group>
+ <xs:complexType name="ParameterBlockType">
+ <xs:sequence>
+ <xs:group ref="ParameterBlockGroup" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
+ </xs:complexType>
+</xs:schema>
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>
diff --git a/Schemas/SystemClass.xsd b/Schemas/SystemClass.xsd new file mode 100644 index 0000000..daf3cd7 --- /dev/null +++ b/Schemas/SystemClass.xsd @@ -0,0 +1,17 @@ +<?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="FileIncluder.xsd"/>
+ <xs:include schemaLocation="Subsystem.xsd"/>
+ <xs:element name="SystemClass">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="SubsystemInclude" type="FileIncluderType"/>
+ <xs:element ref="Subsystem"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
|