wiki:trunk/features/mergerCapabilities/xmlSchema

OSyncCapabilities Schema for internal storage of capabilties information

This schema is mostly based on the SyncML 1.2 CTCaps schema.

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">

  <xsd:element name="Caps">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element maxOccurs="unbounded" minOccurs="1" name="ObjType" type="ObjType"/>
      </xsd:sequence>
      <xsd:attribute name="CapsFormat" type="xsd:string"/>
      <xsd:attribute name="Version" type="xsd:string"/>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="ObjType">
    <xsd:sequence>
      <xsd:element maxOccurs="1" minOccurs="0" name="DisplayName" type="xsd:string" />
      <xsd:element maxOccurs="1" minOccurs="0" name="MaxOccurs" type="xsd:integer" />
      <xsd:element maxOccurs="1" minOccurs="0" name="Max" type="xsd:integer" />
      <xsd:element maxOccurs="1" minOccurs="0" name="Min" type="xsd:integer" />
      <xsd:element maxOccurs="1" minOccurs="1" name="PropName" type="xsd:string" />
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="Parameter" type="AdvancedParameter" />
      <xsd:element maxOccurs="1" minOccurs="0" name="Type" type="AdvancedType" />
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="ValEnum" type="xsd:string" />
      <xsd:element maxOccurs="1" minOccurs="1" name="Value" type="xsd:string" />
    </xsd:sequence>
      <xsd:attribute name="Name" type="xsd:string"/>
  </xsd:complexType>

   <!-- Begin of external include. TODO split: plugin_config.xsd -->
  
  <xsd:complexType name="AdvancedParameter">
    <xsd:sequence>
      <xsd:element maxOccurs="1" minOccurs="0" name="DisplayName" type="xsd:string" />
      <xsd:element maxOccurs="1" minOccurs="1" name="Name" type="xsd:string" />
      <xsd:element maxOccurs="1" minOccurs="0" name="Type" type="AdvancedType" />
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="ValEnum" type="xsd:string" />
      <xsd:element maxOccurs="1" minOccurs="1" name="Value" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="AdvancedType">
    <xsd:restriction base="xsd:string">
      <!-- bool is 1/0  -->
      <xsd:enumeration value="bool"/>
      <!-- single character -->
      <xsd:enumeration value="char"/>
      <xsd:enumeration value="double"/>
      <xsd:enumeration value="int"/>
      <xsd:enumeration value="long"/>
      <xsd:enumeration value="longlong"/>
      <xsd:enumeration value="string" />
      <xsd:enumeration value="uint"/>
      <xsd:enumeration value="ulong"/>
      <xsd:enumeration value="ulonglong"/>
    </xsd:restriction>
  </xsd:simpleType>

Example of persistent internal stored capabilities:

<capabilities capsformat="evo2-caps" version="0">
        <objtype name="contact">
                <cap><Name>address</Name></cap>
                <cap><Name>address_label_home</Name></cap>
                <cap><Name>address_label_other</Name></cap>
                <cap><Name>address_label_work</Name></cap>
                <cap><Name>email</Name></cap>
                <cap><Name>full_name</Name></cap>
                <cap><Name>im_jabber</Name></cap>
                <cap><Name>name</Name><MaxOccurs>1</MaxOccurs></cap>
                <cap><Name>nickname</Name></cap>
                <cap><Name>org</Name><cap
                <cap><Name>photo</Name><cap>
        </objtype>
        <objtype name="event">
           ....
        </objtype>
</capabilities>