468 lines
21 KiB
XML
468 lines
21 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="BooleanParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="ParameterNameEnumType" use="required"/>
|
|
</xs:extension>
|
|
<!--xs:restriction base="xs:string">
|
|
<xs:pattern value="([01][\s]*)+"/>
|
|
<xs:pattern value="((0x0|0x1)[\s]*)+"/>
|
|
<xs:attribute name="Name" type="xs:string" use="required"/>
|
|
</xs:restriction-->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="IntegerParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="ParameterNameEnumType" use="required"/>
|
|
</xs:extension>
|
|
<!--xs:restriction base="xs:string">
|
|
<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="Name" type="xs:string" use="required"/>
|
|
</xs:restriction-->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="EnumParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="ParameterNameEnumType" use="required"/>
|
|
</xs:extension>
|
|
<!--xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="xs:string" use="required"/>
|
|
</xs:extension-->
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
<xs:complexType name="PointParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="ParameterNameEnumType" use="required"/>
|
|
</xs:extension>
|
|
<!--xs:restriction base="xs:string">
|
|
<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:attribute name="Name" type="xs:NMTOKEN" use="required"/>
|
|
</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="ParameterNameEnumType" use="required"/>
|
|
</xs:complexType>
|
|
<xs:complexType name="StringParameterType">
|
|
<xs:simpleContent>
|
|
<xs:extension base="xs:string">
|
|
<xs:attribute name="Name" type="ParameterNameEnumType" 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="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="BitParameter" type="IntegerParameterType"/>
|
|
<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: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 -->
|
|
|
|
<xs:simpleType name="ParameterNameEnumType">
|
|
<xs:restriction base="xs:string">
|
|
<xs:enumeration value="volume_profile"/>
|
|
|
|
<xs:enumeration value="communication"/>
|
|
<xs:enumeration value="ambient"/>
|
|
<xs:enumeration value="builtin_mic"/>
|
|
<xs:enumeration value="bluetooth_sco_headset"/>
|
|
<xs:enumeration value="wired_headset"/>
|
|
<xs:enumeration value="hdmi"/>
|
|
<xs:enumeration value="telephony_rx"/>
|
|
<xs:enumeration value="back_mic"/>
|
|
<xs:enumeration value="remote_submix"/>
|
|
<xs:enumeration value="anlg_dock_headset"/>
|
|
<xs:enumeration value="dgtl_dock_headset"/>
|
|
<xs:enumeration value="usb_accessory"/>
|
|
<xs:enumeration value="usb_device"/>
|
|
<xs:enumeration value="fm_tuner"/>
|
|
<xs:enumeration value="tv_tuner"/>
|
|
<xs:enumeration value="line"/>
|
|
<xs:enumeration value="spdif"/>
|
|
<xs:enumeration value="bluetooth_a2dp" />
|
|
<xs:enumeration value="loopback" />
|
|
<xs:enumeration value="ip" />
|
|
<xs:enumeration value="bus" />
|
|
<xs:enumeration value="proxy"/>
|
|
<xs:enumeration value="usb_headset"/>
|
|
<xs:enumeration value="bluetooth_ble"/>
|
|
<xs:enumeration value="hdmi_arc"/>
|
|
<xs:enumeration value="echo_reference"/>
|
|
<xs:enumeration value="ble_headset"/>
|
|
<xs:enumeration value="stub"/>
|
|
<xs:enumeration value="hdmi_earc"/>
|
|
|
|
<xs:enumeration value="device_address"/>
|
|
|
|
<xs:enumeration value="earpiece" />
|
|
<xs:enumeration value="speaker" />
|
|
<xs:enumeration value="wired_headphone" />
|
|
<xs:enumeration value="bluetooth_sco" />
|
|
<xs:enumeration value="bluetooth_sco_carkit"/>
|
|
<xs:enumeration value="bluetooth_a2dp_headphones"/>
|
|
<xs:enumeration value="bluetooth_a2dp_speaker"/>
|
|
<xs:enumeration value="telephony_tx"/>
|
|
<xs:enumeration value="fm"/>
|
|
<xs:enumeration value="aux_line"/>
|
|
<xs:enumeration value="speaker_safe"/>
|
|
<xs:enumeration value="hearing_aid" />
|
|
<xs:enumeration value="echo_canceller" />
|
|
<xs:enumeration value="ble_speaker" />
|
|
<xs:enumeration value="ble_broadcast" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:schema>
|