1 <?xml version=
"1.0" encoding=
"UTF-8"?>
2 <!DOCTYPE schema PUBLIC
"-//W3C//DTD XMLSCHEMA 200102//EN" "http://www.w3.org/2001/XMLSchema.dtd">
3 <xs:schema xmlns:
xs=
"http://www.w3.org/2001/XMLSchema">
4 <xs:element name=
"extension">
6 <xs:choice maxOccurs=
"unbounded">
7 <xs:element name=
"summary" type=
"translatedString" minOccurs=
"1" maxOccurs=
"unbounded"/>
8 <xs:element name=
"description" type=
"translatedString" minOccurs=
"0" maxOccurs=
"unbounded"/>
9 <xs:element name=
"disclaimer" type=
"translatedString" minOccurs=
"0" maxOccurs=
"unbounded"/>
10 <xs:element name=
"platform" type=
"platformList" minOccurs=
"0"/>
11 <xs:element name=
"language" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
12 <xs:element name=
"license" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1" />
13 <xs:element name=
"forum" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
14 <xs:element name=
"website" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
15 <xs:element name=
"source" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
16 <xs:element name=
"email" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
17 <xs:element name=
"lifecyclestate" type=
"translatedLifecycleState" minOccurs=
"0" maxOccurs=
"unbounded"/>
18 <xs:element name=
"news" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
19 <xs:element name=
"reuselanguageinvoker" type=
"xs:boolean" minOccurs=
"0" maxOccurs=
"1"/>
20 <xs:element name=
"assets" type=
"assetsList" minOccurs=
"0" maxOccurs=
"1"/>
22 <xs:attribute name=
"point" type=
"xs:string" use=
"required"/>
23 <xs:attribute name=
"id" type=
"simpleIdentifier"/>
24 <xs:attribute name=
"name" type=
"xs:string"/>
27 <xs:simpleType name=
"simpleIdentifier">
28 <xs:restriction base=
"xs:string">
29 <xs:pattern value=
"(kodi|xbmc)\.addon\.metadata"/>
32 <xs:complexType name=
"translatedString">
34 <xs:extension base=
"xs:string">
35 <xs:attribute name=
"lang" type=
"langIdentifier" use=
"required"/>
39 <xs:complexType name=
"translatedLifecycleState">
41 <xs:extension base=
"nonEmptyStringCapped">
42 <xs:attribute name=
"type" type=
"lifecycleStateType" use=
"required"/>
43 <xs:attribute name=
"lang" type=
"langIdentifier"/>
47 <xs:simpleType name=
"platformType">
48 <xs:restriction base=
"xs:string">
49 <xs:enumeration value=
"linux"/>
50 <xs:enumeration value=
"osx"/>
51 <xs:enumeration value=
"osx64"/>
52 <xs:enumeration value=
"ios"/>
53 <xs:enumeration value=
"windx"/>
54 <xs:enumeration value=
"windows"/>
55 <xs:enumeration value=
"windowsstore"/>
56 <xs:enumeration value=
"android"/>
57 <xs:enumeration value=
"freebsd"/>
58 <xs:enumeration value=
"all"/>
61 <xs:simpleType name=
"langIdentifier">
62 <xs:restriction base=
"xs:string">
63 <xs:pattern value=
"[a-z]{2,3}(_[A-Z]{2}(@\S+)?)?"/>
66 <xs:simpleType name=
"lifecycleStateType">
67 <xs:restriction base=
"xs:string">
68 <xs:enumeration value=
"normal"/>
69 <xs:enumeration value=
"deprecated"/>
70 <xs:enumeration value=
"broken"/>
73 <xs:complexType name=
"assetsList">
74 <xs:choice maxOccurs=
"unbounded">
75 <xs:element name=
"icon" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
76 <xs:element name=
"fanart" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
77 <xs:element name=
"screenshot" type=
"xs:string" minOccurs=
"0"/>
78 <xs:element name=
"clearlogo" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
79 <xs:element name=
"banner" type=
"xs:string" minOccurs=
"0" maxOccurs=
"1"/>
82 <xs:simpleType name=
"platformList">
83 <xs:list itemType=
"platformType"/>