You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.9 KiB
182 lines
3.9 KiB
# ConfigFile as API
|
|
|
|
The ConfigFile as API is a formal Treble interface describing schemas of
|
|
configuration files used across system and vendor partitions.
|
|
The Java APIs in the current.txt file are not Java APIs for apps. It's a proxy
|
|
for the schema of a xml file used between the system and vendor partition.
|
|
The xml files are only ever parsed by apps on the system partition.
|
|
|
|
## Add Schema
|
|
Add the schema (attribute, element or new complexType …) you want to add to the
|
|
xsd file.
|
|
|
|
#### before
|
|
```xml
|
|
<xs:element name="class">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="student" type="xs:string"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type=”xs:string”/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
```
|
|
|
|
#### after
|
|
```xml
|
|
<xs:element name="class">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="student" type="xs:string"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type=”xs:string”/>
|
|
<xs:attribute name="number" type="xs:int"/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
```
|
|
|
|
Then run "make {xsd_config module_name} .docs-update-current-api" or "make
|
|
update-api" to update all the xsd_config modules.
|
|
|
|
In the above example, two functions are added as below.
|
|
* method public int getNumber();
|
|
* method public void setNumber(int);
|
|
|
|
## Remove Schema
|
|
To remove a tag, add an annotation tag with the name of "Deprecated" into the
|
|
tag to be deleted. Partners are not allowed to create new vendor images using
|
|
deprecated tags
|
|
|
|
#### before
|
|
```xml
|
|
<xs:element name="class">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="student" type="xs:string"/>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type=”xs:string”/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
```
|
|
|
|
#### after
|
|
```xml
|
|
<xs:element name="class">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element name="student" type="xs:string">
|
|
<annotation name=”Deprecated”/>
|
|
</xs:element>
|
|
</xs:sequence>
|
|
<xs:attribute name="name" type=”xs:string”/>
|
|
</xs:complexType>
|
|
</xs:element>
|
|
```
|
|
|
|
After adding “Deprecated” annotation, we need to update the api or schema just
|
|
like when adding a tag. In the above example, a @Deprecate annotation is added.
|
|
* method @Deprecated public java.util.List<java.lang.String> getStudent();
|
|
After 2 years we can delete the tag. When deleting, delete the tag in the xsd
|
|
file and the api in last_current.txt, and update it.
|
|
|
|
## Release Schema
|
|
If there are any changes, we update last_current.txt and last_removed.txt before
|
|
release by copying current.txt and removed.txt to last_current.txt and
|
|
last_removed.txt.
|
|
|
|
## Supported/Unsupported Tags
|
|
Only the follow tags and attributes are allowed:
|
|
|
|
#### Supported
|
|
```xml
|
|
"xsd:schema" [
|
|
]
|
|
|
|
"xsd:element" [
|
|
"xsd:name" {
|
|
values: any valid java name
|
|
}
|
|
"xsd:type" {
|
|
values: built-in data type, simpleType or complexType
|
|
},
|
|
"xsd:ref" {
|
|
values: another element
|
|
},
|
|
"xsd:minOccurs" {
|
|
values: [ 0, maxOccurs ]
|
|
},
|
|
"xsd:maxOccurs" {
|
|
values: [ 1, unbounded ]
|
|
},
|
|
]
|
|
|
|
"xsd:attribute" [
|
|
"xsd:name" {
|
|
values: any valid java name
|
|
}
|
|
"xsd:type" {
|
|
values: built-in data type, simpleType or complexType
|
|
},
|
|
"xsd:ref" {
|
|
values: another element
|
|
},
|
|
]
|
|
|
|
"xsd:complexType" [
|
|
"xsd:name" {
|
|
values: any valid java name
|
|
}
|
|
]
|
|
|
|
"xsd:complexContent" [
|
|
]
|
|
|
|
"xsd:simpleContent" [
|
|
]
|
|
|
|
"xsd:restriction": [
|
|
"xsd:base" {
|
|
values: built-in data type
|
|
}
|
|
]
|
|
|
|
"xsd:extension": [
|
|
"xsd:base" {
|
|
values: built-in data type, simpleType or complexType
|
|
}
|
|
]
|
|
|
|
"xsd:simpleType": [
|
|
"xsd:name" {
|
|
values: any valid java name
|
|
}
|
|
]
|
|
|
|
"xsd:list": [
|
|
"xsd:itemType" {
|
|
values: built-in data type, or simpleType
|
|
}
|
|
]
|
|
|
|
"xsd:union": [
|
|
"xsd:memberTypes" {
|
|
values: built-in data type, or simpleType
|
|
}
|
|
]
|
|
|
|
"xsd:sequence": [
|
|
]
|
|
|
|
"xsd:choice": [
|
|
]
|
|
|
|
"xsd:all": [
|
|
]
|
|
|
|
"xsd:enumeration": [
|
|
"xsd:value" {
|
|
values: built-in data type
|
|
}
|
|
]
|
|
```
|