|
From: <svn...@op...> - 2009-11-02 13:03:07
|
Author: dgollub Date: Mon Nov 2 14:02:51 2009 New Revision: 5915 URL: http://www.opensync.org/changeset/5915 Log: Created XML Schema (XSD) for ExternalPlugin XML configuraiton file. Based on ./docs/examples/plugins/src/external_plugin.xml and it's C parsing implementation by Graham. Hint for everyone how needs to write XSD from scratch on an already exisitng XML file. Use this commandline: xmllint --schema external_plugin_config.xsd external_plugin.xml Added: trunk/misc/schemas/external_plugin_config.xsd - copied, changed from r5908, trunk/misc/schemas/plugin_config.xsd Copied and modified: trunk/misc/schemas/external_plugin_config.xsd (from r5908, trunk/misc/schemas/plugin_config.xsd) ============================================================================== --- trunk/misc/schemas/plugin_config.xsd Mon Nov 2 13:03:43 2009 (r5908, copy source) +++ trunk/misc/schemas/external_plugin_config.xsd Mon Nov 2 14:02:51 2009 (r5915) @@ -1,174 +1,16 @@ <?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="config"> + <xsd:element name="ExternalPlugin"> <xsd:complexType> <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="AdvancedOptions" type="AdvancedOptions"/> - <xsd:element maxOccurs="1" minOccurs="0" name="Authentication" type="Authentication"/> - <xsd:element maxOccurs="1" minOccurs="0" name="Connection" type="Connection"/> - <xsd:element maxOccurs="1" minOccurs="0" name="Localization" type="Localization"/> - <xsd:element maxOccurs="1" minOccurs="0" name="Resources" type="Resources"/> - <xsd:element maxOccurs="1" minOccurs="0" name="ExternalPlugin" type="ExternalPlugin"/> + <xsd:element maxOccurs="1" minOccurs="1" name="Name" type="xsd:string" /> + <xsd:element maxOccurs="1" minOccurs="1" name="LongName" type="xsd:string" /> + <xsd:element maxOccurs="1" minOccurs="1" name="Description" type="xsd:string" /> + <xsd:element maxOccurs="1" minOccurs="1" name="ExternalCommand" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="version" type="xsd:string"/> </xsd:complexType> </xsd:element> - <xsd:complexType name="AdvancedOptions"> - <xsd:sequence> - <xsd:element maxOccurs="unbounded" minOccurs="0" name="AdvancedOption" type="AdvancedOption"/> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="AdvancedOption"> - <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="Name" 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:complexType> - - <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> - - <xsd:complexType name="Authentication"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="Username" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Password" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Reference" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Localization"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="Encoding" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Timezone" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Language" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Format"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="Config" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Name" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Formats"> - <xsd:sequence> - <xsd:element maxOccurs="unbounded" minOccurs="1" name="Format" type="Format" /> - <!-- The preferred format is a hint for the converter. - If you like to get vCards and you do not support vCards directly - (e.g. the file plugin only supports raw data) - but you have only a source which supports only XML format - then you can specify vcard30 and you will get vCard 3.0. - --> - <xsd:element maxOccurs="1" minOccurs="0" name="Preferred" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Resource"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="1" name="Enabled" type="xsd:integer" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Formats" type="Formats" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Name" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="MIME" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="1" name="ObjType" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Path" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Url" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Resources"> - <xsd:sequence> - <xsd:element maxOccurs="unbounded" minOccurs="1" name="Resource" type="Resource" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ConnectionBluetooth"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="1" name="MAC" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="RFCommChannel" type="xsd:integer" /> - <xsd:element maxOccurs="1" minOccurs="0" name="SDPUUID" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ConnectionUSB"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="VendorID" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="ProductID" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Interface" type="xsd:integer" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ConnectionNetwork"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="Address" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Port" type="xsd:integer" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Protocol" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="DNSSD" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ConnectionSerial"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="0" name="Speed" type="xsd:integer" /> - <xsd:element maxOccurs="1" minOccurs="0" name="DeviceNode" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="ConnectionIrDA"> - <xsd:sequence> - <xsd:element maxOccurs="1" minOccurs="1" name="Service" type="xsd:string" /> - </xsd:sequence> - </xsd:complexType> - - <xsd:complexType name="Connection"> - <xsd:all> - <xsd:element maxOccurs="1" minOccurs="1" name="ActiveConnection" type="xsd:string" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Bluetooth" type="ConnectionBluetooth" /> - <xsd:element maxOccurs="1" minOccurs="0" name="IrDA" type="ConnectionIrDA" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Network" type="ConnectionNetwork" /> - <xsd:element maxOccurs="1" minOccurs="0" name="Serial" type="ConnectionSerial" /> - <xsd:element maxOccurs="1" minOccurs="0" name="USB" type="ConnectionUSB" /> - </xsd:all> - </xsd:complexType> - - <xsd:complexType name="ExternalPlugin"> - <xsd:all> - <xsd:element maxOccurs="1" minOccurs="1" name="ExternalCommand" type="xsd:string" /> - </xsd:all> - </xsd:complexType> - </xsd:schema> |