755 lines
32 KiB
XML
755 lines
32 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<!-- BEGIN W3cXmlAttributes.xsd -->
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
See http://www.w3.org/XML/1998/namespace.html and
|
|
http://www.w3.org/TR/REC-xml for information about this namespace.
|
|
|
|
This schema document describes the XML namespace, in a form
|
|
suitable for import by other schema documents.
|
|
|
|
Note that local names in this namespace are intended to be defined
|
|
only by the World Wide Web Consortium or its subgroups. The
|
|
following names are currently defined in this namespace and should
|
|
not be used with conflicting semantics by any Working Group,
|
|
specification, or document instance:
|
|
|
|
base (as an attribute name): denotes an attribute whose value
|
|
provides a URI to be used as the base for interpreting any
|
|
relative URIs in the scope of the element on which it
|
|
appears; its value is inherited. This name is reserved
|
|
by virtue of its definition in the XML Base specification.
|
|
|
|
id (as an attribute name): denotes an attribute whose value
|
|
should be interpreted as if declared to be of type ID.
|
|
The xml:id specification is not yet a W3C Recommendation,
|
|
but this attribute is included here to facilitate experimentation
|
|
with the mechanisms it proposes. Note that it is _not_ included
|
|
in the specialAttrs attribute group.
|
|
|
|
lang (as an attribute name): denotes an attribute whose value
|
|
is a language code for the natural language of the content of
|
|
any element; its value is inherited. This name is reserved
|
|
by virtue of its definition in the XML specification.
|
|
|
|
space (as an attribute name): denotes an attribute whose
|
|
value is a keyword indicating what whitespace processing
|
|
discipline is intended for the content of the element; its
|
|
value is inherited. This name is reserved by virtue of its
|
|
definition in the XML specification.
|
|
|
|
Father (in any context at all): denotes Jon Bosak, the chair of
|
|
the original XML Working Group. This name is reserved by
|
|
the following decision of the W3C XML Plenary and
|
|
XML Coordination groups:
|
|
|
|
In appreciation for his vision, leadership and dedication
|
|
the W3C XML Plenary on this 10th day of February, 2000
|
|
reserves for Jon Bosak in perpetuity the XML name
|
|
xml:Father
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:annotation>
|
|
<xs:documentation>This schema defines attributes and an attribute group
|
|
suitable for use by
|
|
schemas wishing to allow xml:base, xml:lang, xml:space or xml:id
|
|
attributes on elements they define.
|
|
|
|
To enable this, such a schema must import this schema
|
|
for the XML namespace, e.g. as follows:
|
|
<schema . . .>
|
|
. . .
|
|
<import namespace="http://www.w3.org/XML/1998/namespace"
|
|
schemaLocation="http://www.w3.org/2005/08/xml.xsd"/>
|
|
|
|
Subsequently, qualified reference to any of the attributes
|
|
or the group defined below will have the desired effect, e.g.
|
|
|
|
<type . . .>
|
|
. . .
|
|
<attributeGroup ref="xml:specialAttrs"/>
|
|
|
|
will define a type which will schema-validate an instance
|
|
element with any of those attributes</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:annotation>
|
|
<xs:documentation>In keeping with the XML Schema WG's standard versioning
|
|
policy, this schema document will persist at
|
|
http://www.w3.org/2005/08/xml.xsd.
|
|
At the date of issue it can also be found at
|
|
http://www.w3.org/2001/xml.xsd.
|
|
The schema document at that URI may however change in the future,
|
|
in order to remain compatible with the latest version of XML Schema
|
|
itself, or with the XML namespace itself. In other words, if the XML
|
|
Schema or XML namespaces change, the version of this document at
|
|
http://www.w3.org/2001/xml.xsd will change
|
|
accordingly; the version at
|
|
http://www.w3.org/2005/08/xml.xsd will not change.
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
|
|
<xs:attribute name="lang">
|
|
<xs:annotation>
|
|
<xs:documentation>Attempting to install the relevant ISO 2- and 3-letter
|
|
codes as the enumerated possible values is probably never
|
|
going to be a realistic possibility. See
|
|
RFC 3066 at http://www.ietf.org/rfc/rfc3066.txt and the IANA registry
|
|
at http://www.iana.org/assignments/lang-tag-apps.htm for
|
|
further information.
|
|
|
|
The union allows for the 'un-declaration' of xml:lang with
|
|
the empty string.</xs:documentation>
|
|
</xs:annotation>
|
|
<xs:simpleType>
|
|
<xs:union memberTypes="xs:language">
|
|
<xs:simpleType name="langEnum">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value=""/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:union>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="space">
|
|
<xs:simpleType name="spaceEnum">
|
|
<xs:restriction base="xs:NCName">
|
|
<xs:enumeration value="default"/>
|
|
<xs:enumeration value="preserve"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="base" type="xs:anyURI">
|
|
<xs:annotation>
|
|
<xs:documentation>See http://www.w3.org/TR/xmlbase/ for
|
|
information about this attribute.</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
|
|
<xs:attribute name="id" type="xs:ID">
|
|
<xs:annotation>
|
|
<xs:documentation>See http://www.w3.org/TR/xml-id/ for
|
|
information about this attribute.</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
|
|
<xs:attributeGroup name="specialAttrs">
|
|
<xs:attribute ref="xml:base"/>
|
|
<xs:attribute ref="xml:lang"/>
|
|
<xs:attribute ref="xml:space"/>
|
|
</xs:attributeGroup>
|
|
<!-- END W3cXmlAttributes.xsd -->
|
|
|
|
<!-- BEGIN ParameterSettings.xsd -->
|
|
<!-- BUG b/147297854 - removed "abstract" from type definition -->
|
|
<xs:complexType name="ParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
|
|
<xs:attribute name="ValueSpace" use="optional">
|
|
<xs:simpleType name="ValueSpaceEnum">
|
|
<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+(0|([+-]?[1-9][0-9]*)))*"/>
|
|
<xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/>
|
|
<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="PointParameterType">
|
|
<xs:simpleContent>
|
|
<xs:restriction base="ParameterType">
|
|
<xs:pattern value="((0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)(\s+(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?)*"/>
|
|
<xs:pattern value="(0x[0-9a-fA-F]+)(\s+(0x[0-9a-fA-F]+))*"/>
|
|
</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="PointParameterType"/>
|
|
<xs:element name="FloatingPointParameter" type="PointParameterType"/>
|
|
<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="Component" type="ParameterBlockType"/>
|
|
<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>
|
|
<!-- END ParameterSettings.xsd -->
|
|
|
|
<!-- BEGIN ConfigurableDomain.xsd -->
|
|
<xs:complexType name="SelectionCriterionRuleType">
|
|
<xs:attribute name="SelectionCriterion" type="xs:NMTOKEN" use="required"/>
|
|
<xs:attribute name="MatchesWhen" use="required">
|
|
<xs:simpleType name="MatchesWhenEnum">
|
|
<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" type="xs:NMTOKEN"/>
|
|
</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 name="TypeEnum">
|
|
<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:sequence>
|
|
<xs:group ref="ParameterBlockGroup"/>
|
|
</xs:sequence>
|
|
</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:choice>
|
|
<xs:element name="BitParameter" type="IntegerParameterType"/>
|
|
<xs:group ref="ComponentGroup"/>
|
|
</xs:choice>
|
|
<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="ConfigurableDomain" type="ConfigurableDomainType"/>
|
|
<!-- END ConfigurableDomain.xsd -->
|
|
|
|
<!-- BEGIN ConfigurableDomains.xsd -->
|
|
<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>
|
|
<!-- END ConfigurableDomains.xsd -->
|
|
|
|
<!-- BEGIN Parameter.xsd -->
|
|
<xs:attributeGroup name="Nameable">
|
|
<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:attributeGroup ref="ArrayLengthAttribute"/>
|
|
<xs:attribute name="Mapping" use="optional" type="xs:string"/>
|
|
</xs:complexType>
|
|
<xs:simpleType name="SizeType">
|
|
<xs:restriction base="xs:positiveInteger">
|
|
<xs:pattern value="8|16|32"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:simpleType name="SizeType64">
|
|
<xs:restriction base="xs:positiveInteger">
|
|
<xs:pattern value="8|16|32|64"/>
|
|
</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="Adaptation">
|
|
<xs:attribute name="Offset" type="xs:integer" default="0"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="LinearAdaptationType">
|
|
<xs:complexContent>
|
|
<xs:extension base="Adaptation">
|
|
<xs:attribute name="SlopeNumerator" type="xs:double" default="1"/>
|
|
<xs:attribute name="SlopeDenominator" type="xs:double" default="1"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<xs:element name="LinearAdaptation" type="LinearAdaptationType"/>
|
|
<xs:element name="LogarithmicAdaptation">
|
|
<xs:complexType>
|
|
<xs:complexContent>
|
|
<xs:extension base="LinearAdaptationType">
|
|
<xs:attribute name="LogarithmBase" type="xs:double" default="10"/>
|
|
<xs:attribute name="FloorValue" type="xs:double" default="-INF"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- BUG b/147297854 - removed abstract from Parameter definition -->
|
|
<xs:complexType name="Parameter">
|
|
<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" type="SizeType"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="IntegerParameterType">
|
|
<xs:complexContent>
|
|
<xs:extension base="Parameter">
|
|
<xs:choice minOccurs="0">
|
|
<xs:element ref="LinearAdaptation"/>
|
|
<xs:element ref="LogarithmicAdaptation"/>
|
|
</xs:choice>
|
|
<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:string" 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:simpleType name="PointBound">
|
|
<xs:restriction base="xs:string">
|
|
<xs:pattern value="(0|[+-]?0\.[0-9]+|(([+-]?[1-9][0-9]*)(\.[0-9]+)?))([Ee][+-]?[0-9]+)?"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
<xs:complexType name="PointParameterType">
|
|
<xs:complexContent>
|
|
<xs:extension base="Parameter">
|
|
<xs:attribute name="Unit" type="xs:token" use="optional"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="FixedPointParameterType">
|
|
<xs:complexContent>
|
|
<xs:extension base="PointParameterType">
|
|
<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:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<xs:element name="FixedPointParameter" type="FixedPointParameterType"/>
|
|
<xs:complexType name="FloatingPointParameterType">
|
|
<xs:complexContent>
|
|
<xs:extension base="PointParameterType">
|
|
<xs:attribute name="Size" fixed="32" type="SizeType"/>
|
|
<xs:attribute name="Min" type="PointBound" use="optional"/>
|
|
<xs:attribute name="Max" type="PointBound" use="optional"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
<xs:element name="FloatingPointParameter" type="FloatingPointParameterType"/>
|
|
<xs:complexType name="BitParameterType">
|
|
<xs:attributeGroup ref="Nameable"/>
|
|
<xs:attribute name="Size" use="required">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:positiveInteger">
|
|
<xs:maxInclusive value="64"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="Pos" use="required">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:nonNegativeInteger">
|
|
<xs:maxInclusive value="63"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:attribute>
|
|
<xs:attribute name="Max" type="xs:integer" use="optional"/>
|
|
</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="SizeType64" 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="FloatingPointParameter"/>
|
|
<xs:element ref="BitParameterBlock"/>
|
|
<xs:element ref="StringParameter"/>
|
|
<xs:element name="Component" type="ComponentInstance"/>
|
|
<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>
|
|
<!-- END Parameter.xsd -->
|
|
|
|
<!-- BEGIN ComponentTypeSet.xsd -->
|
|
<xs:complexType name="ComponentType">
|
|
<xs:sequence>
|
|
<xs:sequence>
|
|
<xs:group ref="ParameterBlockGroup"/>
|
|
</xs:sequence>
|
|
</xs:sequence>
|
|
<xs:attributeGroup ref="Nameable"/>
|
|
<xs:attribute name="Extends" use="optional" type="xs:NMTOKEN"/>
|
|
<xs:attribute name="Mapping" use="optional" type="xs:string"/>
|
|
</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>
|
|
<!-- END ComponentTypeSet.xsd -->
|
|
|
|
<!-- BEGIN ComponentLibrary.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>
|
|
<!-- END ComponentLibrary.xsd -->
|
|
|
|
<!-- BEGIN Subsystem.xsd -->
|
|
<xs:complexType name="SubsystemType">
|
|
<xs:sequence>
|
|
<xs:element ref="ComponentLibrary"/>
|
|
<xs:element name="InstanceDefinition">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:sequence>
|
|
<xs:group ref="ParameterBlockGroup"/>
|
|
</xs:sequence>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<xs:unique name="InstanceDefinitionSubElementsUniqueness">
|
|
<xs:selector xpath="*"/>
|
|
<xs:field xpath="@Name"/>
|
|
</xs:unique>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attributeGroup ref="Nameable"/>
|
|
<xs:attribute name="Type" use="required" type="xs:NMTOKEN"/>
|
|
<xs:attribute name="Mapping" use="optional" type="xs:string"/>
|
|
</xs:complexType>
|
|
<xs:element name="Subsystem" type="SubsystemType">
|
|
<xs:keyref name="InstanceDefinitionComponentTypeNotFound" refer="ComponentTypeUniqueness">
|
|
<xs:selector xpath="InstanceDefinition/Component"/>
|
|
<xs:field xpath="@Type"/>
|
|
</xs:keyref>
|
|
</xs:element>
|
|
<!-- END Subsystem.xsd -->
|
|
|
|
<!-- BEGIN FileIncluder.xsd -->
|
|
<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>
|
|
<!-- END FileIncluder.xsd -->
|
|
|
|
<!-- BEGIN SystemClass.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>
|
|
<!-- END SystemClass.xsd -->
|
|
|
|
<!-- BEGIN ParameterFrameworkConfiguration.xsd -->
|
|
<xs:complexType name="ConfigurationFilePath">
|
|
<xs:attribute name="Path" type="xs:anyURI" use="required"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="PluginFile">
|
|
<xs:attribute name="Name" type="xs:NMTOKEN" use="required"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="PluginLocation">
|
|
<xs:sequence>
|
|
<xs:element name="Plugin" type="PluginFile" maxOccurs="unbounded" minOccurs="0"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="Folder" type="xs:anyURI" use="required"/>
|
|
</xs:complexType>
|
|
<xs:element name="SubsystemPlugins">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="Location" type="PluginLocation" maxOccurs="unbounded" minOccurs="0"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<xs:complexType name="SettingsConfigurationType">
|
|
<xs:sequence>
|
|
<xs:element name="ConfigurableDomainsFileLocation" type="ConfigurationFilePath"/>
|
|
</xs:sequence>
|
|
</xs:complexType>
|
|
<xs:element name="ParameterFrameworkConfiguration">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="SubsystemPlugins" />
|
|
<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:string"/>
|
|
<xs:attribute name="TuningAllowed" use="required" type="xs:boolean"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
<!-- END ParameterFrameworkConfiguration.xsd -->
|
|
</xs:schema>
|