Merge changes from topic "engine_vts"

am: 24a21c1b53

Change-Id: I5d66369c23ae9e146b6b5840f90433c72f6c2d45
This commit is contained in:
François Gaffie 2020-01-22 10:28:07 -08:00 committed by android-build-merger
commit eb3c4cbe0b
21 changed files with 2324 additions and 1 deletions

View file

@ -5,15 +5,31 @@ cc_test {
"ValidateEngineConfiguration.cpp",
],
static_libs: [
"android.hardware.audio.common.test.utility",
"libxml2",
"liblog",
"libmedia_helper",
"libaudiopolicyengine_config",
"libaudiopolicycomponents",
"libaudiopolicyengineconfigurable_pfwwrapper",
"android.hardware.audio.common.test.utility",
"libparameter",
"libpfw_utility",
"libremote-processor",
"libutils",
"libcutils",
"libhidlbase",
"liblog",
"libbase",
],
shared_libs: [
"libaudiofoundation",
],
// Use test_config for vts-core suite.
// TODO(b/146104851): Add auto-gen rules and remove it.
test_config: "VtsHalAudioPolicyV1_0TargetTest.xml",
cflags: [
"-DXSD_DIR=\"/data/local/tmp\"",
"-DXSD_PFW_DIR=\"/data/local/tmp/Schemas\"",
"-Wall",
"-Werror",
"-Wno-unused-function",
@ -22,6 +38,18 @@ cc_test {
],
data: [
":audio_policy_engine_conf_V1_0",
":audio_policy_engine_configurable_configuration_V1_0",
":audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0",
":audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0",
":audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0",
":audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0",
":audio_policy_engine_configurable_configuration_FileIncluder_V1_0",
":audio_policy_engine_configurable_configuration_Parameter_V1_0",
":audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0",
":audio_policy_engine_configurable_configuration_ParameterSettings_V1_0",
":audio_policy_engine_configurable_configuration_Subsystem_V1_0",
":audio_policy_engine_configurable_configuration_SystemClass_V1_0",
":audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0",
],
gtest: true,
test_suites: [

View file

@ -14,6 +14,9 @@
* limitations under the License.
*/
#include <EngineConfig.h>
#include <ParameterManagerWrapper.h>
#include <gtest/gtest.h>
#include <unistd.h>
@ -25,6 +28,11 @@ static const std::string config = "audio_policy_engine_configuration.xml";
static const std::string schema =
std::string(XSD_DIR) + "/audio_policy_engine_configuration_V1_0.xsd";
static const std::string configurableSchemas =
std::string(XSD_DIR) + "/audio_policy_engine_configurable_configuration_V1_0.xsd";
static const std::string configurableConfig =
"parameter-framework/ParameterFrameworkConfigurationPolicy.xml";
/**
* @brief TEST to ensure the audio policy engine configuration file is validating schemas.
* Note: this configuration file is not mandatory, an hardcoded fallback is provided, so
@ -36,3 +44,70 @@ TEST(ValidateConfiguration, audioPolicyEngineConfiguration) {
"is valid according to the schemas");
EXPECT_VALID_XML_MULTIPLE_LOCATIONS(config.c_str(), locations, schema.c_str());
}
/**
* @brief deviceUsesConfigurableEngine checks if the configuration file for
* the engine presents on the device AND
* for the configurable engine (aka Parameter-Framework top configuration file) presents.
*/
static bool deviceUsesConfigurableEngine() {
return android::hardware::audio::common::test::utility::validateXmlMultipleLocations<true>(
"", "", "", config.c_str(), locations, schema.c_str()) &&
android::hardware::audio::common::test::utility::validateXmlMultipleLocations<true>(
"", "", "", configurableConfig.c_str(), locations, configurableSchemas.c_str());
}
TEST(ValidateConfiguration, audioPolicyEngineConfigurable) {
if (!deviceUsesConfigurableEngine()) {
GTEST_SKIP() << "Device using legacy engine without parameter-framework, n-op.";
}
RecordProperty("description",
"Verify that the audio policy engine PFW configuration files "
"are valid according to the schemas");
auto testAudioPolicyEnginePfw = [&](bool validateSchema, const std::string& schemasUri) {
auto result = android::engineConfig::parse();
ASSERT_NE(nullptr, result.parsedConfig)
<< "failed to parse audio policy engine configuration";
ASSERT_EQ(result.nbSkippedElement, 0) << "skipped %zu elements " << result.nbSkippedElement;
std::unique_ptr<android::audio_policy::ParameterManagerWrapper> policyParameterMgr(
new android::audio_policy::ParameterManagerWrapper(validateSchema, schemasUri));
ASSERT_NE(nullptr, policyParameterMgr) << "failed to create Audio Policy Engine PFW";
// Load the criterion types and criteria
for (auto& criterion : result.parsedConfig->criteria) {
android::engineConfig::CriterionType criterionType;
for (auto& configCriterionType : result.parsedConfig->criterionTypes) {
if (configCriterionType.name == criterion.typeName) {
criterionType = configCriterionType;
break;
}
}
ASSERT_FALSE(criterionType.name.empty())
<< "Invalid criterion type for " << criterion.name.c_str();
policyParameterMgr->addCriterion(criterion.name, criterionType.isInclusive,
criterionType.valuePairs,
criterion.defaultLiteralValue);
}
ASSERT_EQ(0, result.nbSkippedElement) << "failed to parse Audio Policy Engine PFW criteria";
// If the PFW cannot validate, it will not start
std::string error;
auto status = policyParameterMgr->start(error);
ASSERT_EQ(status, android::NO_ERROR)
<< "failed to " << (validateSchema ? "validate" : "start")
<< " Audio Policy Engine PFW: " << error;
ASSERT_TRUE(policyParameterMgr->isStarted());
};
// First round for sanity to ensure we can launch the Audio Policy Engine PFW without
// schema validation successfully, otherwise it is not forth going on running validation...
testAudioPolicyEnginePfw(false, {});
// If second round fails, it means parameter-framework cannot validate schema
testAudioPolicyEnginePfw(true, {XSD_PFW_DIR});
}

View file

@ -27,6 +27,18 @@
<option name="cleanup" value="true" />
<option name="push" value="VtsHalAudioPolicyV1_0TargetTest->/data/local/tmp/VtsHalAudioPolicyV1_0TargetTest" />
<option name="push" value="audio_policy_engine_conf_V1_0.xsd->/data/local/tmp/audio_policy_engine_configuration_V1_0.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_V1_0.xsd->/data/local/tmp/audio_policy_engine_configurable_configuration_V1_0.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0.xsd->/data/local/tmp/Schemas/ComponentLibrary.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0.xsd->/data/local/tmp/Schemas/ComponentTypeSet.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0.xsd->/data/local/tmp/Schemas/ConfigurableDomain.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0.xsd->/data/local/tmp/Schemas/ConfigurableDomains.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_FileIncluder_V1_0.xsd->/data/local/tmp/Schemas/FileIncluder.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_Parameter_V1_0.xsd->/data/local/tmp/Schemas/Parameter.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0.xsd->/data/local/tmp/Schemas/ParameterFrameworkConfiguration.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_ParameterSettings_V1_0.xsd->/data/local/tmp/Schemas/ParameterSettings.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_Subsystem_V1_0.xsd->/data/local/tmp/Schemas/Subsystem.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_SystemClass_V1_0.xsd->/data/local/tmp/Schemas/SystemClass.xsd" />
<option name="push" value="audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0.xsd->/data/local/tmp/Schemas/W3cXmlAttributes.xsd" />
</target_preparer>
<test class="com.android.tradefed.testtype.GTest" >

View file

@ -0,0 +1,754 @@
<?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:
&lt;schema . . .>
. . .
&lt;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.
&lt;type . . .>
. . .
&lt;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>

View file

@ -0,0 +1,107 @@
xsd_config {
name: "audio_policy_engine_configurable_configuration_V1_0",
srcs: ["AllSchemas.xsd"],
package_name: "audio.policy.configurable.V1_0",
}
// Unfortunately, all rules only have a single output, thus
// it is needed to create a rule per XSD file.
genrule {
name: "audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0",
srcs: ["ComponentLibrary.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ComponentLibrary_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0",
srcs: ["ComponentTypeSet.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ComponentTypeSet_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0",
srcs: ["ConfigurableDomain.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ConfigurableDomain_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0",
srcs: ["ConfigurableDomains.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ConfigurableDomains_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_FileIncluder_V1_0",
srcs: ["FileIncluder.xsd"],
out: [
"audio_policy_engine_configurable_configuration_FileIncluder_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_FileIncluder_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_Parameter_V1_0",
srcs: ["Parameter.xsd"],
out: [
"audio_policy_engine_configurable_configuration_Parameter_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_Parameter_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0",
srcs: ["ParameterFrameworkConfiguration.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ParameterFrameworkConfiguration_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_ParameterSettings_V1_0",
srcs: ["ParameterSettings.xsd"],
out: [
"audio_policy_engine_configurable_configuration_ParameterSettings_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_ParameterSettings_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_Subsystem_V1_0",
srcs: ["Subsystem.xsd"],
out: [
"audio_policy_engine_configurable_configuration_Subsystem_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_Subsystem_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_SystemClass_V1_0",
srcs: ["SystemClass.xsd"],
out: [
"audio_policy_engine_configurable_configuration_SystemClass_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_SystemClass_V1_0.xsd",
}
genrule {
name: "audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0",
srcs: ["W3cXmlAttributes.xsd"],
out: [
"audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0.xsd",
],
cmd: "cp -f $(in) $(genDir)/audio_policy_engine_configurable_configuration_W3cXmlAttributes_V1_0.xsd",
}

View file

@ -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="W3cXmlAttributes.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>

View file

@ -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="W3cXmlAttributes.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" 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>
</xs:schema>

View file

@ -0,0 +1,117 @@
<?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 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"/>
</xs:schema>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:include schemaLocation="ConfigurableDomain.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>
</xs:schema>

View file

@ -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>

View file

@ -0,0 +1,213 @@
<?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: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>
<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" 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>
</xs:schema>

View file

@ -0,0 +1,40 @@
<?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: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>
</xs:schema>

View file

@ -0,0 +1,93 @@
<?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 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>
</xs:schema>

View file

@ -0,0 +1,87 @@
# parameter-framework configuration file XML Schemas
These are W3C Schemas for the various configuration files.
`xmllint` may be used to check for correctness, e.g:
xmllint --xinclude --noout --schema ParameterFrameworkConfiguration.xsd /path/to/your/ParameterFrameworkConfiguration.xml
See `tools/xmlValidator` for a custom alternative tool.
Only `ParameterFrameworkConfiguration.xsd`, `SystemClass.xsd`, `Subsystem.xsd` and
`ConfigurableDomains.xsd` are relevant for use with xmllint: the others are
included by these 4 XSDs.
**You may refer to samples at
<https://github.com/01org/parameter-framework-samples>.**
## ParameterFrameworkConfiguration.xsd
Schema for the **top-level configuration**. It contains:
- A reference to the `SystemClass` (aka StructureDescription) XML file (see
below);
- The list of plugins (libraries) to be used. They may be split according to
the folder they reside in. The `Folder` attribute can either be:
- an absolute path,
- a relative path (relative to the execution directory),
- empty.
In the first two cases, the runtime loader will be asked to explicitely load
the libraries found in the specified folder; in the last case (empty string)
the runtime loader will search for the library on its own (e.g. on Linux
distribution this is usually `/lib`, `/usr/lib` - see `man ld.so`)
- Optionally, a reference to the `Settings`.
Attributes of `ParameterFrameworkConfiguration` are:
- The `SystemClass` name (for consistency check)
- `TuningAllowed` (whether the parameter-framework listens for commands)
- The `ServerPort` bind Address (PATH or TCP port) on which the parameter-framework listens if
`TuningAllowed=true`.
## SystemClass.xsd
Schema for the **SystemClass associated with the top-level configuration**. It
points to all the "Subsystem" files (see below).
The `Name` attribute of the SystemClass must match the `SystemClass` attribute
of the top-level configuration file. This name will be the first component of
all parameters in it, i.e. if its name is "FooBar", its path is `/FooBar`. We
will use this name in examples below.
## Subsystem.xsd
Schema for all **Subsystem files** (aka Structure files). These files describe the
content and structure of the system to be managed by the parameter-framework
and also indicate which plugin is to be used.
A Subsystem has the following attribute:
- `Name` (self-explanatory); again it is the base component of all parameters
inside it; i.e. if its name is "Spam", its path is `/FooBar/Spam`;
- `Type`, which indicates which SubsystemBuilder is to be used (each plugin can
declare one or more SubsystemBuilders); it may be defined as `Virtual`, in
which case, no plugin will be used and the parameters won't be synchronized.
This is useful for debugging but may also be used for the parameter-framework
to act as a configurable settings database;
- `Mapping` (optional), defines a Mapping to be inherited by all Components in
the Subsystem.
A Subsystem *must* contain:
- A `ComponentLibrary`, which may include (using `<xi:include href="xyz.xml"/>`)
other files containing a `<ComponentLibrary>` or a `<ComponentTypeSet>` tag.
- An `InstanceDefinition` which instantiates the parameters and may use
ComponentTypes defined in the ComponentLibrary.
## ConfigurableDomains.xsd
Schema for the ConfigurableDomains (aka Settings files). These files contain
the rules for applying values to parameters.
Writing this file by hand is painful but it is not intended to be dealt
with directly: instead, you may use the command-line interface (see
`remote-process/README.md`) to set the settings and export the resulting
Settings with the `getDomainsWithSettingsXML` command.

View file

@ -0,0 +1,32 @@
<?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="ComponentLibrary.xsd"/>
<xs:complexType name="SubsystemType">
<xs:sequence>
<xs:element ref="ComponentLibrary"/>
<xs:element name="InstanceDefinition">
<xs:complexType>
<xs:sequence>
<xs:sequence maxOccurs="unbounded">
<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>
</xs:schema>

View file

@ -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>

View file

@ -0,0 +1,146 @@
<?xml version='1.0'?>
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
<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:
&lt;schema . . .>
. . .
&lt;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.
&lt;type . . .>
. . .
&lt;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 name="langEnum">
<xs:union memberTypes="xs:language">
<xs:simpleType>
<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>
</xs:schema>

View file

@ -0,0 +1,495 @@
// Signature format: 2.0
package audio.policy.configurable.V1_0 {
public class Adaptation {
ctor public Adaptation();
method public java.math.BigInteger getOffset();
method public void setOffset(java.math.BigInteger);
}
public class BitParameterBlock {
ctor public BitParameterBlock();
method public java.util.List<audio.policy.configurable.V1_0.BitParameterType> getBitParameter();
method public String getDescription();
method public String getMapping();
method public String getName();
method public java.math.BigInteger getSize();
method public void setDescription(String);
method public void setMapping(String);
method public void setName(String);
method public void setSize(java.math.BigInteger);
}
public class BitParameterBlockType {
ctor public BitParameterBlockType();
method public java.util.List<audio.policy.configurable.V1_0.IntegerParameterType> getBitParameter();
method public String getName();
method public void setName(String);
}
public class BitParameterType {
ctor public BitParameterType();
method public String getDescription();
method public java.math.BigInteger getMax();
method public String getName();
method public java.math.BigInteger getPos();
method public java.math.BigInteger getSize();
method public void setDescription(String);
method public void setMax(java.math.BigInteger);
method public void setName(String);
method public void setPos(java.math.BigInteger);
method public void setSize(java.math.BigInteger);
}
public class BooleanParameter extends audio.policy.configurable.V1_0.Parameter {
ctor public BooleanParameter();
method public java.math.BigInteger getSize();
method public void setSize(java.math.BigInteger);
}
public class BooleanParameterType extends audio.policy.configurable.V1_0.ParameterType {
ctor public BooleanParameterType();
}
public class ComponentInstance {
ctor public ComponentInstance();
method public java.math.BigInteger getArrayLength();
method public String getDescription();
method public String getMapping();
method public String getName();
method public String getType();
method public void setArrayLength(java.math.BigInteger);
method public void setDescription(String);
method public void setMapping(String);
method public void setName(String);
method public void setType(String);
}
public class ComponentType {
ctor public ComponentType();
method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock();
method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter();
method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional();
method public String getDescription();
method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter();
method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter();
method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter();
method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter();
method public String getMapping();
method public String getName();
method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional();
method public audio.policy.configurable.V1_0.StringParameter getStringParameter();
method public String get_extends();
method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock);
method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter);
method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance);
method public void setDescription(String);
method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType);
method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType);
method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType);
method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType);
method public void setMapping(String);
method public void setName(String);
method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType);
method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter);
method public void set_extends(String);
}
public class ComponentTypeSetType {
ctor public ComponentTypeSetType();
method public String getBase();
method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentLibrary_optional();
method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentTypeSet_optional();
method public audio.policy.configurable.V1_0.ComponentType getComponentType_optional();
method public void setBase(String);
method public void setComponentLibrary_optional(audio.policy.configurable.V1_0.ComponentTypeSetType);
method public void setComponentTypeSet_optional(audio.policy.configurable.V1_0.ComponentTypeSetType);
method public void setComponentType_optional(audio.policy.configurable.V1_0.ComponentType);
}
public class CompoundRuleType {
ctor public CompoundRuleType();
method public audio.policy.configurable.V1_0.CompoundRuleType getCompoundRule_optional();
method public audio.policy.configurable.V1_0.SelectionCriterionRuleType getSelectionCriterionRule_optional();
method public audio.policy.configurable.V1_0.TypeEnum getType();
method public void setCompoundRule_optional(audio.policy.configurable.V1_0.CompoundRuleType);
method public void setSelectionCriterionRule_optional(audio.policy.configurable.V1_0.SelectionCriterionRuleType);
method public void setType(audio.policy.configurable.V1_0.TypeEnum);
}
public class ConfigurableDomainType {
ctor public ConfigurableDomainType();
method public audio.policy.configurable.V1_0.ConfigurableElementsType getConfigurableElements();
method public audio.policy.configurable.V1_0.ConfigurationsType getConfigurations();
method public String getName();
method public boolean getSequenceAware();
method public audio.policy.configurable.V1_0.SettingsType getSettings();
method public void setConfigurableElements(audio.policy.configurable.V1_0.ConfigurableElementsType);
method public void setConfigurations(audio.policy.configurable.V1_0.ConfigurationsType);
method public void setName(String);
method public void setSequenceAware(boolean);
method public void setSettings(audio.policy.configurable.V1_0.SettingsType);
}
public class ConfigurableDomains {
ctor public ConfigurableDomains();
method public java.util.List<audio.policy.configurable.V1_0.ConfigurableDomainType> getConfigurableDomain();
method public String getSystemClassName();
method public void setSystemClassName(String);
}
public class ConfigurableElementSettingsType {
ctor public ConfigurableElementSettingsType();
method public audio.policy.configurable.V1_0.IntegerParameterType getBitParameter_optional();
method public String getPath();
method public void setBitParameter_optional(audio.policy.configurable.V1_0.IntegerParameterType);
method public void setPath(String);
}
public class ConfigurableElementsType {
ctor public ConfigurableElementsType();
method public java.util.List<audio.policy.configurable.V1_0.ConfigurableElementsType.ConfigurableElement> getConfigurableElement();
}
public static class ConfigurableElementsType.ConfigurableElement {
ctor public ConfigurableElementsType.ConfigurableElement();
method public String getPath();
method public void setPath(String);
}
public class ConfigurationFilePath {
ctor public ConfigurationFilePath();
method public String getPath();
method public void setPath(String);
}
public class ConfigurationsType {
ctor public ConfigurationsType();
method public java.util.List<audio.policy.configurable.V1_0.ConfigurationsType.Configuration> getConfiguration();
}
public static class ConfigurationsType.Configuration {
ctor public ConfigurationsType.Configuration();
method public audio.policy.configurable.V1_0.CompoundRuleType getCompoundRule();
method public String getName();
method public void setCompoundRule(audio.policy.configurable.V1_0.CompoundRuleType);
method public void setName(String);
}
public class EnumParameterType extends audio.policy.configurable.V1_0.Parameter {
ctor public EnumParameterType();
method public java.math.BigInteger getSize();
method public java.util.List<audio.policy.configurable.V1_0.EnumParameterType.ValuePair> getValuePair();
method public void setSize(java.math.BigInteger);
}
public static class EnumParameterType.ValuePair {
ctor public EnumParameterType.ValuePair();
method public String getLiteral();
method public String getNumerical();
method public void setLiteral(String);
method public void setNumerical(String);
}
public class FileIncluderType {
ctor public FileIncluderType();
method public String getPath();
method public void setPath(String);
}
public class FixedPointParameterType extends audio.policy.configurable.V1_0.PointParameterType {
ctor public FixedPointParameterType();
method public java.math.BigInteger getFractional();
method public java.math.BigInteger getIntegral();
method public java.math.BigInteger getSize();
method public void setFractional(java.math.BigInteger);
method public void setIntegral(java.math.BigInteger);
method public void setSize(java.math.BigInteger);
}
public class FloatingPointParameterType extends audio.policy.configurable.V1_0.PointParameterType {
ctor public FloatingPointParameterType();
method public String getMax();
method public String getMin();
method public java.math.BigInteger getSize();
method public void setMax(String);
method public void setMin(String);
method public void setSize(java.math.BigInteger);
}
public class IntegerParameterType extends audio.policy.configurable.V1_0.Parameter {
ctor public IntegerParameterType();
method public audio.policy.configurable.V1_0.LinearAdaptationType getLinearAdaptation();
method public audio.policy.configurable.V1_0.LogarithmicAdaptation getLogarithmicAdaptation();
method public java.math.BigInteger getMax();
method public java.math.BigInteger getMin();
method public boolean getSigned();
method public java.math.BigInteger getSize();
method public String getUnit();
method public void setLinearAdaptation(audio.policy.configurable.V1_0.LinearAdaptationType);
method public void setLogarithmicAdaptation(audio.policy.configurable.V1_0.LogarithmicAdaptation);
method public void setMax(java.math.BigInteger);
method public void setMin(java.math.BigInteger);
method public void setSigned(boolean);
method public void setSize(java.math.BigInteger);
method public void setUnit(String);
}
public enum LangEnum {
method public String getRawName();
enum_constant public static final audio.policy.configurable.V1_0.LangEnum EMPTY;
}
public class LinearAdaptationType extends audio.policy.configurable.V1_0.Adaptation {
ctor public LinearAdaptationType();
method public double getSlopeDenominator();
method public double getSlopeNumerator();
method public void setSlopeDenominator(double);
method public void setSlopeNumerator(double);
}
public class LogarithmicAdaptation extends audio.policy.configurable.V1_0.LinearAdaptationType {
ctor public LogarithmicAdaptation();
method public double getFloorValue();
method public double getLogarithmBase();
method public void setFloorValue(double);
method public void setLogarithmBase(double);
}
public enum MatchesWhenEnum {
method public String getRawName();
enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Excludes;
enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Includes;
enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum Is;
enum_constant public static final audio.policy.configurable.V1_0.MatchesWhenEnum IsNot;
}
public class Parameter {
ctor public Parameter();
method public java.math.BigInteger getArrayLength();
method public String getDescription();
method public String getMapping();
method public String getName();
method public void setArrayLength(java.math.BigInteger);
method public void setDescription(String);
method public void setMapping(String);
method public void setName(String);
}
public class ParameterBlockType {
ctor public ParameterBlockType();
method public java.math.BigInteger getArrayLength();
method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock();
method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter();
method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional();
method public String getDescription();
method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter();
method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter();
method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter();
method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter();
method public String getMapping();
method public String getName();
method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional();
method public audio.policy.configurable.V1_0.StringParameter getStringParameter();
method public void setArrayLength(java.math.BigInteger);
method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock);
method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter);
method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance);
method public void setDescription(String);
method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType);
method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType);
method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType);
method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType);
method public void setMapping(String);
method public void setName(String);
method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType);
method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter);
}
public class ParameterFrameworkConfiguration {
ctor public ParameterFrameworkConfiguration();
method public String getServerPort();
method public audio.policy.configurable.V1_0.SettingsConfigurationType getSettingsConfiguration();
method public audio.policy.configurable.V1_0.ConfigurationFilePath getStructureDescriptionFileLocation();
method public audio.policy.configurable.V1_0.SubsystemPlugins getSubsystemPlugins();
method public String getSystemClassName();
method public boolean getTuningAllowed();
method public void setServerPort(String);
method public void setSettingsConfiguration(audio.policy.configurable.V1_0.SettingsConfigurationType);
method public void setStructureDescriptionFileLocation(audio.policy.configurable.V1_0.ConfigurationFilePath);
method public void setSubsystemPlugins(audio.policy.configurable.V1_0.SubsystemPlugins);
method public void setSystemClassName(String);
method public void setTuningAllowed(boolean);
}
public class ParameterType {
ctor public ParameterType();
method public String getName();
method public String getValue();
method public audio.policy.configurable.V1_0.ValueSpaceEnum getValueSpace();
method public void setName(String);
method public void setValue(String);
method public void setValueSpace(audio.policy.configurable.V1_0.ValueSpaceEnum);
}
public class PluginFile {
ctor public PluginFile();
method public String getName();
method public void setName(String);
}
public class PluginLocation {
ctor public PluginLocation();
method public String getFolder();
method public java.util.List<audio.policy.configurable.V1_0.PluginFile> getPlugin();
method public void setFolder(String);
}
public class PointParameterType extends audio.policy.configurable.V1_0.Parameter {
ctor public PointParameterType();
method public String getUnit();
method public void setUnit(String);
}
public class SelectionCriterionRuleType {
ctor public SelectionCriterionRuleType();
method public audio.policy.configurable.V1_0.MatchesWhenEnum getMatchesWhen();
method public String getSelectionCriterion();
method public String getValue();
method public void setMatchesWhen(audio.policy.configurable.V1_0.MatchesWhenEnum);
method public void setSelectionCriterion(String);
method public void setValue(String);
}
public class SettingsConfigurationType {
ctor public SettingsConfigurationType();
method public audio.policy.configurable.V1_0.ConfigurationFilePath getConfigurableDomainsFileLocation();
method public void setConfigurableDomainsFileLocation(audio.policy.configurable.V1_0.ConfigurationFilePath);
}
public class SettingsType {
ctor public SettingsType();
method public java.util.List<audio.policy.configurable.V1_0.SettingsType.Configuration> getConfiguration();
}
public static class SettingsType.Configuration {
ctor public SettingsType.Configuration();
method public java.util.List<audio.policy.configurable.V1_0.ConfigurableElementSettingsType> getConfigurableElement();
method public String getName();
method public void setName(String);
}
public enum SpaceEnum {
method public String getRawName();
enum_constant public static final audio.policy.configurable.V1_0.SpaceEnum _default;
enum_constant public static final audio.policy.configurable.V1_0.SpaceEnum preserve;
}
public class StringParameter {
ctor public StringParameter();
method public String getDescription();
method public String getMapping();
method public java.math.BigInteger getMaxLength();
method public String getName();
method public void setDescription(String);
method public void setMapping(String);
method public void setMaxLength(java.math.BigInteger);
method public void setName(String);
}
public class StringParameterType {
ctor public StringParameterType();
method public String getName();
method public String getValue();
method public void setName(String);
method public void setValue(String);
}
public class SubsystemPlugins {
ctor public SubsystemPlugins();
method public java.util.List<audio.policy.configurable.V1_0.PluginLocation> getLocation();
}
public class SubsystemType {
ctor public SubsystemType();
method public audio.policy.configurable.V1_0.ComponentTypeSetType getComponentLibrary();
method public String getDescription();
method public audio.policy.configurable.V1_0.SubsystemType.InstanceDefinition getInstanceDefinition();
method public String getMapping();
method public String getName();
method public String getType();
method public void setComponentLibrary(audio.policy.configurable.V1_0.ComponentTypeSetType);
method public void setDescription(String);
method public void setInstanceDefinition(audio.policy.configurable.V1_0.SubsystemType.InstanceDefinition);
method public void setMapping(String);
method public void setName(String);
method public void setType(String);
}
public static class SubsystemType.InstanceDefinition {
ctor public SubsystemType.InstanceDefinition();
method public audio.policy.configurable.V1_0.BitParameterBlock getBitParameterBlock();
method public audio.policy.configurable.V1_0.BooleanParameter getBooleanParameter();
method public audio.policy.configurable.V1_0.ComponentInstance getComponent_optional();
method public audio.policy.configurable.V1_0.EnumParameterType getEnumParameter();
method public audio.policy.configurable.V1_0.FixedPointParameterType getFixedPointParameter();
method public audio.policy.configurable.V1_0.FloatingPointParameterType getFloatingPointParameter();
method public audio.policy.configurable.V1_0.IntegerParameterType getIntegerParameter();
method public audio.policy.configurable.V1_0.ParameterBlockType getParameterBlock_optional();
method public audio.policy.configurable.V1_0.StringParameter getStringParameter();
method public void setBitParameterBlock(audio.policy.configurable.V1_0.BitParameterBlock);
method public void setBooleanParameter(audio.policy.configurable.V1_0.BooleanParameter);
method public void setComponent_optional(audio.policy.configurable.V1_0.ComponentInstance);
method public void setEnumParameter(audio.policy.configurable.V1_0.EnumParameterType);
method public void setFixedPointParameter(audio.policy.configurable.V1_0.FixedPointParameterType);
method public void setFloatingPointParameter(audio.policy.configurable.V1_0.FloatingPointParameterType);
method public void setIntegerParameter(audio.policy.configurable.V1_0.IntegerParameterType);
method public void setParameterBlock_optional(audio.policy.configurable.V1_0.ParameterBlockType);
method public void setStringParameter(audio.policy.configurable.V1_0.StringParameter);
}
public class SystemClass {
ctor public SystemClass();
method public String getName();
method public java.util.List<audio.policy.configurable.V1_0.SubsystemType> getSubsystem();
method public java.util.List<audio.policy.configurable.V1_0.FileIncluderType> getSubsystemInclude_optional();
method public void setName(String);
}
public enum TypeEnum {
method public String getRawName();
enum_constant public static final audio.policy.configurable.V1_0.TypeEnum All;
enum_constant public static final audio.policy.configurable.V1_0.TypeEnum Any;
}
public enum ValueSpaceEnum {
method public String getRawName();
enum_constant public static final audio.policy.configurable.V1_0.ValueSpaceEnum Raw;
enum_constant public static final audio.policy.configurable.V1_0.ValueSpaceEnum Real;
}
public class XmlParser {
ctor public XmlParser();
method public static audio.policy.configurable.V1_0.BitParameterBlock readBitParameterBlock(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.BooleanParameter readBooleanParameter(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.ComponentTypeSetType readComponentTypeSetType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.ComponentTypeSetType readComponentTypeSetType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.ConfigurableDomainType readConfigurableDomainType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.ConfigurableDomains readConfigurableDomains(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.EnumParameterType readEnumParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.FixedPointParameterType readFixedPointParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.FloatingPointParameterType readFloatingPointParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.IntegerParameterType readIntegerParameterType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.LinearAdaptationType readLinearAdaptationType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.LogarithmicAdaptation readLogarithmicAdaptation(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.ParameterFrameworkConfiguration readParameterFrameworkConfiguration(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.StringParameter readStringParameter(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.SubsystemPlugins readSubsystemPlugins(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.SubsystemType readSubsystemType(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static audio.policy.configurable.V1_0.SystemClass readSystemClass(java.io.InputStream) throws javax.xml.datatype.DatatypeConfigurationException, java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static String readText(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
method public static void skip(org.xmlpull.v1.XmlPullParser) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
}
}

View file

@ -0,0 +1 @@
// Signature format: 2.0