<xs:element name="autocompletion-config"> <xs:complexType> <xs:sequence> <xs:element name="feature" maxOccurs="unbounded"> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="enabled" type="xs:boolean" use="required"/> </xs:element> <xs:element name="provider" maxOccurs="unbounded"> <xs:attribute name="name" type="xs:string"/> <xs:attribute name="priority" type="xs:string"/> </xs:element> </xs:sequence> </xs:complexType> </xs:element> | Symptom | Likely cause | Fix | |---------|--------------|-----| | Autocom not working | XML not copied to /vendor/etc | Check PRODUCT_COPY_FILES | | Parse error at boot | Invalid XML syntax | Validate with xmllint | | Feature stays disabled | Missing enabled="true" attribute | Edit XML activation flag | | No network-based suggestions | Activation condition mismatch | Set condition="online" only when network ready | | Permission denied | SELinux denial | Add type_transition rule | 8. Complete minimal example (Android) File: vendor/x/autocom/autocom_activation.xml
If not Android, "Autocom" could refer to Eclipse XML editor autocompletion . Activation file: .project or .classpath + XML catalog Example: catalog.xml for XML autocompletion activation: File Activation Xml Autocom
<?xml version="1.0"?> <catalog prefer="public"> <public publicId="-//My/DTD/Autocom 1.0//EN" uri="autocom.dtd"/> <uri name="http://myapp.com/autocom-config" uri="autocom-schema.xsd"/> </catalog> Then in Eclipse: Preferences → XML → XML Catalog → Add → points to this file → autocompletion for custom XML tags. 6. Security & Validation (Deep) Activation XML files must be validated to prevent injection: if (!f) return false
# In device.mk PRODUCT_PACKAGES += autocom_activation.xml PRODUCT_COPY_FILES += \ vendor/x/autocom/autocom_activation.xml:$(TARGET_COPY_OUT_VENDOR)/etc/autocom/config.xml Then in code (C++/Java): // Parse <
bool isAutocomActive() FILE* f = fopen("/vendor/etc/autocom/autocom_activation.xml", "r"); if (!f) return false; // Parse <activation mode="full"> fclose(f); return true;
// Schema validation SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); Schema schema = factory.newSchema(new File("autocom_schema.xsd")); Validator validator = schema.newValidator(); validator.validate(new StreamSource("autocom_activation.xml")); Typical schema ( autocom_schema.xsd ):
<autocom version="1"> <activation mode="full"/> </autocom> vendor/x/autocom/Android.bp