Merge branch 'MDL-57455_master-fix' of https://github.com/markn86/moodle
[moodle.git] / lib / phpunit / phpunit.xsd
blob1ffa321ef6532237896c7597a787becaac604517
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
3 <xs:annotation>
4 <xs:documentation source="https://phpunit.de/manual/5.4/en/appendixes.configuration.html">
5 This Schema file defines the rules by which the XML configuration file of PHPUnit 5.4 may be structured.
6 </xs:documentation>
7 <xs:appinfo source="http://www.phpunit.de/manual/current/en/appendixes.configuration.html"/>
8 </xs:annotation>
9 <xs:element name="phpunit" type="phpUnitType">
10 <xs:annotation>
11 <xs:documentation>Root Element</xs:documentation>
12 </xs:annotation>
13 </xs:element>
14 <xs:complexType name="filtersType">
15 <xs:choice>
16 <xs:sequence>
17 <xs:element name="whitelist" type="whiteListType" minOccurs="0"/>
18 </xs:sequence>
19 <xs:sequence>
20 <xs:element name="whitelist" type="whiteListType"/>
21 </xs:sequence>
22 </xs:choice>
23 </xs:complexType>
24 <xs:complexType name="filterType">
25 <xs:sequence>
26 <xs:group ref="pathGroup"/>
27 <xs:element name="exclude" maxOccurs="unbounded" minOccurs="0">
28 <xs:complexType>
29 <xs:group ref="pathGroup"/>
30 </xs:complexType>
31 </xs:element>
32 </xs:sequence>
33 </xs:complexType>
34 <xs:complexType name="whiteListType">
35 <xs:complexContent>
36 <xs:extension base="filterType">
37 <xs:attribute name="addUncoveredFilesFromWhitelist" default="false" type="xs:boolean"/>
38 <xs:attribute name="processUncoveredFilesFromWhitelist" default="true" type="xs:boolean"/>
39 </xs:extension>
40 </xs:complexContent>
41 </xs:complexType>
42 <xs:complexType name="groupsType">
43 <xs:choice>
44 <xs:sequence>
45 <xs:element name="include" type="groupType"/>
46 <xs:element name="exclude" type="groupType" minOccurs="0"/>
47 </xs:sequence>
48 <xs:sequence>
49 <xs:element name="exclude" type="groupType"/>
50 </xs:sequence>
51 </xs:choice>
52 </xs:complexType>
53 <xs:complexType name="groupType">
54 <xs:sequence>
55 <xs:element name="group" type="xs:string" maxOccurs="unbounded"/>
56 </xs:sequence>
57 </xs:complexType>
58 <xs:complexType name="listenersType">
59 <xs:sequence>
60 <xs:element name="listener" type="objectType" maxOccurs="unbounded"/>
61 </xs:sequence>
62 </xs:complexType>
63 <xs:complexType name="objectType">
64 <xs:sequence>
65 <xs:element name="arguments" minOccurs="0">
66 <xs:complexType>
67 <xs:group ref="argumentsGroup"/>
68 </xs:complexType>
69 </xs:element>
70 </xs:sequence>
71 <xs:attribute name="class" type="xs:string" use="required"/>
72 <xs:attribute name="file" type="xs:anyURI"/>
73 </xs:complexType>
74 <xs:complexType name="arrayType">
75 <xs:sequence>
76 <xs:element name="element" type="argumentType" minOccurs="0" maxOccurs="unbounded"/>
77 </xs:sequence>
78 </xs:complexType>
79 <xs:complexType name="argumentType">
80 <xs:group ref="argumentChoice"/>
81 <xs:attribute name="key" use="required"/>
82 </xs:complexType>
83 <xs:group name="argumentsGroup">
84 <xs:sequence>
85 <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
86 <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
87 <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
88 <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
89 <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
90 <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
91 <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
92 <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
93 </xs:sequence>
94 </xs:group>
95 <xs:group name="argumentChoice">
96 <xs:choice>
97 <xs:element name="array" type="arrayType" minOccurs="0" maxOccurs="unbounded"/>
98 <xs:element name="integer" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
99 <xs:element name="string" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
100 <xs:element name="double" type="xs:double" minOccurs="0" maxOccurs="unbounded"/>
101 <xs:element name="null" minOccurs="0" maxOccurs="unbounded"/>
102 <xs:element name="object" type="objectType" minOccurs="0" maxOccurs="unbounded"/>
103 <xs:element name="file" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
104 <xs:element name="directory" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
105 </xs:choice>
106 </xs:group>
107 <xs:complexType name="loggersType">
108 <xs:sequence>
109 <xs:element name="log" type="loggerType" maxOccurs="unbounded"/>
110 </xs:sequence>
111 </xs:complexType>
112 <xs:complexType name="loggerType">
113 <xs:attribute name="type">
114 <xs:simpleType>
115 <xs:restriction base="xs:string">
116 <xs:enumeration value="coverage-html"/>
117 <xs:enumeration value="coverage-text"/>
118 <xs:enumeration value="coverage-clover"/>
119 <xs:enumeration value="coverage-crap4j"/>
120 <xs:enumeration value="coverage-xml"/>
121 <xs:enumeration value="json"/>
122 <xs:enumeration value="plain"/>
123 <xs:enumeration value="tap"/>
124 <xs:enumeration value="teamcity"/>
125 <xs:enumeration value="junit"/>
126 <xs:enumeration value="testdox-html"/>
127 <xs:enumeration value="testdox-text"/>
128 <xs:enumeration value="testdox-xml"/>
129 </xs:restriction>
130 </xs:simpleType>
131 </xs:attribute>
132 <xs:attribute name="target" type="xs:anyURI"/>
133 <xs:attribute name="lowUpperBound" type="xs:nonNegativeInteger" default="35"/>
134 <xs:attribute name="highLowerBound" type="xs:nonNegativeInteger" default="70"/>
135 <xs:attribute name="showUncoveredFiles" type="xs:boolean" default="false"/>
136 <xs:attribute name="threshold" type="xs:nonNegativeInteger" default="30"/>
137 </xs:complexType>
138 <xs:group name="pathGroup">
139 <xs:sequence>
140 <xs:element name="directory" type="directoryFilterType" minOccurs="0" maxOccurs="unbounded"/>
141 <xs:element name="file" type="fileFilterType" minOccurs="0" maxOccurs="unbounded"/>
142 </xs:sequence>
143 </xs:group>
144 <xs:complexType name="directoryFilterType">
145 <xs:simpleContent>
146 <xs:extension base="xs:anyURI">
147 <xs:attribute type="xs:string" name="suffix" default="Test.php"/>
148 <xs:attributeGroup ref="phpVersionGroup"/>
149 </xs:extension>
150 </xs:simpleContent>
151 </xs:complexType>
152 <xs:complexType name="fileFilterType">
153 <xs:simpleContent>
154 <xs:extension base="xs:anyURI">
155 <xs:attributeGroup ref="phpVersionGroup"/>
156 </xs:extension>
157 </xs:simpleContent>
158 </xs:complexType>
159 <xs:attributeGroup name="phpVersionGroup">
160 <xs:attribute name="phpVersion" type="xs:string" default="5.3.0"/>
161 <xs:attribute name="phpVersionOperator" type="xs:string" default="&gt;="/>
162 </xs:attributeGroup>
163 <xs:complexType name="phpType">
164 <xs:sequence>
165 <xs:choice maxOccurs="unbounded">
166 <xs:element name="includePath" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
167 <xs:element name="ini" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
168 <xs:element name="const" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
169 <xs:element name="var" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
170 <xs:element name="env" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
171 <xs:element name="post" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
172 <xs:element name="get" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
173 <xs:element name="cookie" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
174 <xs:element name="server" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
175 <xs:element name="files" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
176 <xs:element name="request" type="namedValueType" minOccurs="0" maxOccurs="unbounded"/>
177 </xs:choice>
178 </xs:sequence>
179 </xs:complexType>
180 <xs:complexType name="namedValueType">
181 <xs:attribute name="name" use="required" type="xs:string"/>
182 <xs:attribute name="value" use="required" type="xs:anySimpleType"/>
183 </xs:complexType>
184 <xs:complexType name="phpUnitType">
185 <xs:annotation>
186 <xs:documentation>The main type specifying the document structure</xs:documentation>
187 </xs:annotation>
188 <xs:group ref="configGroup"/>
189 <xs:attributeGroup ref="configAttributeGroup"/>
190 </xs:complexType>
191 <xs:attributeGroup name="configAttributeGroup">
192 <xs:attribute name="backupGlobals" type="xs:boolean" default="true"/>
193 <xs:attribute name="backupStaticAttributes" type="xs:boolean" default="false"/>
194 <xs:attribute name="bootstrap" type="xs:anyURI"/>
195 <xs:attribute name="cacheTokens" type="xs:boolean"/>
196 <xs:attribute name="colors" type="xs:boolean" default="false"/>
197 <xs:attribute name="columns" type="xs:integer" default="80"/>
198 <xs:attribute name="convertErrorsToExceptions" type="xs:boolean" default="true"/>
199 <xs:attribute name="convertNoticesToExceptions" type="xs:boolean" default="true"/>
200 <xs:attribute name="convertWarningsToExceptions" type="xs:boolean" default="true"/>
201 <xs:attribute name="forceCoversAnnotation" type="xs:boolean" default="false"/>
202 <xs:attribute name="printerClass" type="xs:string" default="PHPUnit_TextUI_ResultPrinter"/>
203 <xs:attribute name="printerFile" type="xs:anyURI"/>
204 <xs:attribute name="processIsolation" type="xs:boolean" default="false"/>
205 <xs:attribute name="stopOnError" type="xs:boolean" default="false"/>
206 <xs:attribute name="stopOnFailure" type="xs:boolean" default="false"/>
207 <xs:attribute name="stopOnWarning" type="xs:boolean" default="false"/>
208 <xs:attribute name="stopOnIncomplete" type="xs:boolean" default="false"/>
209 <xs:attribute name="stopOnRisky" type="xs:boolean" default="false"/>
210 <xs:attribute name="stopOnSkipped" type="xs:boolean" default="false"/>
211 <xs:attribute name="failOnRisky" type="xs:boolean" default="false"/>
212 <xs:attribute name="failOnWarning" type="xs:boolean" default="false"/>
213 <xs:attribute name="beStrictAboutChangesToGlobalState" type="xs:boolean" default="false"/>
214 <xs:attribute name="beStrictAboutOutputDuringTests" type="xs:boolean" default="false"/>
215 <xs:attribute name="beStrictAboutResourceUsageDuringSmallTests" type="xs:boolean" default="false"/>
216 <xs:attribute name="beStrictAboutTestsThatDoNotTestAnything" type="xs:boolean" default="false"/>
217 <xs:attribute name="beStrictAboutTodoAnnotatedTests" type="xs:boolean" default="false"/>
218 <xs:attribute name="beStrictAboutCoversAnnotation" type="xs:boolean" default="false"/>
219 <xs:attribute name="checkForUnintentionallyCoveredCode" type="xs:boolean" default="false"/>
220 <xs:attribute name="enforceTimeLimit" type="xs:boolean" default="false"/>
221 <xs:attribute name="timeoutForSmallTests" type="xs:integer" default="1"/>
222 <xs:attribute name="timeoutForMediumTests" type="xs:integer" default="10"/>
223 <xs:attribute name="timeoutForLargeTests" type="xs:integer" default="60"/>
224 <xs:attribute name="testSuiteLoaderClass" type="xs:string" default="PHPUnit_Runner_StandardTestSuiteLoader"/>
225 <xs:attribute name="testSuiteLoaderFile" type="xs:anyURI"/>
226 <xs:attribute name="verbose" type="xs:boolean" default="false"/>
227 <xs:attribute name="stderr" type="xs:boolean" default="false"/>
228 <xs:attribute name="reverseDefectList" type="xs:boolean" default="false"/>
229 <xs:attribute name="registerMockObjectsFromTestArgumentsRecursively" type="xs:boolean" default="false"/>
230 </xs:attributeGroup>
231 <xs:group name="configGroup">
232 <xs:all>
233 <xs:element ref="testSuiteFacet" minOccurs="0"/>
234 <xs:element name="groups" type="groupsType" minOccurs="0"/>
235 <xs:element name="testdoxGroups" type="groupsType" minOccurs="0"/>
236 <xs:element name="filter" type="filtersType" minOccurs="0"/>
237 <xs:element name="logging" type="loggersType" minOccurs="0"/>
238 <xs:element name="listeners" type="listenersType" minOccurs="0"/>
239 <xs:element name="php" type="phpType" minOccurs="0"/>
240 </xs:all>
241 </xs:group>
242 <xs:element name="testSuiteFacet" abstract="true"/>
243 <xs:element name="testsuite" type="testSuiteType" substitutionGroup="testSuiteFacet"/>
244 <xs:element name="testsuites" type="testSuitesType" substitutionGroup="testSuiteFacet"/>
245 <xs:complexType name="testSuitesType">
246 <xs:sequence>
247 <xs:element name="testsuite" type="testSuiteType" maxOccurs="unbounded"/>
248 </xs:sequence>
249 </xs:complexType>
250 <xs:complexType name="testSuiteType">
251 <xs:sequence>
252 <xs:group ref="pathGroup"/>
253 <xs:element name="exclude" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
254 </xs:sequence>
255 <xs:attribute name="name" type="xs:string" use="required"/>
256 </xs:complexType>
257 </xs:schema>