1 <?xml version="1.0" encoding="utf-8"?>
2 <xs:schema targetNamespace="http://openpandora.org/namespaces/PXML" xmlns="http://openpandora.org/namespaces/PXML" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
4 <xs:simpleType name="x11Param">
5 <xs:restriction base="xs:string">
6 <xs:enumeration value="req" />
7 <xs:enumeration value="stop" />
8 <xs:enumeration value="ignore" />
12 <xs:simpleType name="docType">
13 <xs:restriction base="xs:string">
14 <xs:enumeration value="text/html" />
15 <xs:enumeration value="text/plain" />
19 <xs:simpleType name="versionNumber">
20 <xs:restriction base="xs:string">
21 <xs:minLength value="1"/>
22 <xs:pattern value="[a-zA-Z0-9+-]*" />
26 <xs:simpleType name="emailAddress">
27 <xs:restriction base="xs:string">
28 <xs:pattern value="[^@]+@[^\.]+\..+"/>
32 <xs:simpleType name="dumbPath">
33 <xs:restriction base="xs:normalizedString">
34 <xs:pattern value="[^?>:]+" />
38 <xs:simpleType name="dumbFolderName">
39 <xs:restriction base="xs:normalizedString">
40 <xs:pattern value="[^?>:/]+" />
44 <xs:simpleType name="isoLangcode">
45 <xs:restriction base="xs:string">
46 <xs:minLength value="2"/>
47 <xs:pattern value="[a-zA-Z]{2,3}(_[a-zA-Z0-9]{2,3})*" />
51 <!-- Definition of all allowed categories following the FDO specs -->
52 <xs:simpleType name="fdoCategory">
53 <xs:restriction base="xs:string">
54 <xs:pattern value="AudioVideo|Audio|Video|Development|Education|Game|Graphics|Network|Office"/>
58 <!-- Definition of all allowed subcategories following the FDO specs -->
59 <xs:simpleType name="fdoSubCategory">
60 <xs:restriction base="xs:string">
61 <xs:pattern value="Building|Debugger|IDE|GUIDesigner|Profiling|RevisionControl|Translation|Calendar|ContactManagement|Database|Dictionary|Chart|Email|Finance|FlowChart|PDA|ProjectManagement|Presentation|Spreadsheet|WordProcessor|2DGraphics|VectorGraphics|RasterGraphics|3DGraphics|Scanning|OCR|Photography|Publishing|Viewer|TextTools|DesktopSettings|HardwareSettings|Printing|PackageManager|Dialup|InstantMessaging|Chat|IRCClient|FileTransfer|HamRadio|News|P2P|RemoteAccess|Telephony|TelephonyTools|VideoConference|WebBrowser|WebDevelopment|Midi|Mixer|Sequencer|Tuner|TV|AudioVideoEditing|Player|Recorder|DiscBurning|ActionGame|AdventureGame|ArcadeGame|BoardGame|BlocksGame|CardGame|KidsGame|LogicGame|RolePlaying|Simulation|SportsGame|StrategyGame|Art|Construction|Music|Languages|Science|ArtificialIntelligence|Astronomy|Biology|Chemistry|ComputerScience|DataVisualization|Economy|Electricity|Geography|Geology|Geoscience|History|ImageProcessing|Literature|Math|NumericalAnalysis|MedicalSoftware|Physics|Robotics|Sports|ParallelComputing|Amusement|Archiving|Compression|Electronics|Emulator|Engineering|FileTools|FileManager|TerminalEmulator|Filesystem|Monitor|Security|Accessibility|Calculator|Clock|TextEditor|Documentation|Core|KDE|GNOME|GTK|Qt|Motif|Java|ConsoleOnly"/>
66 <xs:element name="PXML">
69 <xs:element name="application" minOccurs="1" maxOccurs="unbounded">
72 <!--Execution params -->
73 <xs:element name="exec" minOccurs="1">
75 <xs:attribute name="command" use="required" type="xs:token" />
76 <xs:attribute name="arguments" use="optional" type="xs:token" />
77 <xs:attribute name="background" use="optional" type="xs:boolean" />
78 <xs:attribute name="startdir" use="optional" type="dumbPath" />
79 <xs:attribute name="standalone" use="optional" type="xs:boolean" />
80 <xs:attribute name="x11" use="optional" type="x11Param" />
85 <xs:element name="title" minOccurs="1" maxOccurs="unbounded">
88 <xs:extension base="xs:string">
89 <xs:attribute name="lang" type="isoLangcode" />
96 <xs:element name="author" minOccurs="1">
98 <xs:attribute name="name" use="required" type="xs:normalizedString" />
99 <xs:attribute name="website" use="optional" type="xs:anyURI" />
100 <xs:attribute name="email" use="optional" type="emailAddress" />
103 <!--App version info-->
104 <xs:element name="version" minOccurs="1">
106 <xs:attribute name="major" use="required" type="versionNumber" />
107 <xs:attribute name="minor" use="required" type="versionNumber" />
108 <xs:attribute name="release" use="required" type="versionNumber" />
109 <xs:attribute name="build" use="required" type="versionNumber" />
112 <!--OS Version info-->
113 <xs:element name="osversion" minOccurs="0">
115 <xs:attribute name="major" use="required" type="versionNumber" />
116 <xs:attribute name="minor" use="required" type="versionNumber" />
117 <xs:attribute name="release" use="required" type="versionNumber" />
118 <xs:attribute name="build" use="required" type="versionNumber" />
123 <xs:element name="description" minOccurs="0" maxOccurs="unbounded">
126 <xs:extension base="xs:string">
127 <xs:attribute name="lang" use="required" type="isoLangcode" />
134 <xs:element name="icon" minOccurs="0">
136 <xs:attribute name="src" use="required" type="dumbPath" />
140 <xs:element name="previewpics" minOccurs="0">
143 <xs:element name="pic" minOccurs="0" maxOccurs="unbounded">
145 <xs:attribute name="src" use="required" type="dumbPath" />
151 <!--Info (aka manual or readme entry)-->
152 <xs:element name="info" minOccurs="0">
154 <xs:attribute name="name" use="required" type="xs:normalizedString" />
155 <xs:attribute name="type" use="required" type="docType" />
156 <xs:attribute name="src" use="required" type="dumbPath" />
160 <xs:element name="categories" minOccurs="1">
163 <xs:element name="category" maxOccurs="unbounded">
166 <xs:element name="subcategory" maxOccurs="unbounded">
168 <xs:attribute name="name" type="fdoSubCategory" />
172 <xs:attribute name="name" use="required" type="fdoCategory" />
179 <xs:element name="associations" minOccurs="0">
182 <xs:element name="association" maxOccurs="unbounded">
184 <xs:attribute name="name" use="required" type="xs:normalizedString" />
185 <xs:attribute name="filetype" use="required" type="xs:token" />
186 <xs:attribute name="arguments" use="required" type="xs:token" />
193 <xs:element name="clockspeed" minOccurs="0">
195 <xs:attribute name="frequency" use="required" type="xs:positiveInteger" />
200 <xs:attribute name="id" use="required" type="dumbFolderName" />
201 <xs:attribute name="appdata" use="optional" type="dumbFolderName" />