1<?xml version="1.0" encoding="UTF-8" ?>
2<!-- from https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/xsd/junit-4.xsd -->
3<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
4
5    <xs:element name="failure">
6        <xs:complexType mixed="true">
7            <xs:attribute name="type" type="xs:string" use="optional"/>
8            <xs:attribute name="message" type="xs:string" use="optional"/>
9        </xs:complexType>
10    </xs:element>
11
12    <xs:element name="error">
13        <xs:complexType mixed="true">
14            <xs:attribute name="type" type="xs:string" use="optional"/>
15            <xs:attribute name="message" type="xs:string" use="optional"/>
16        </xs:complexType>
17    </xs:element>
18
19    <xs:element name="properties">
20        <xs:complexType>
21            <xs:sequence>
22                <xs:element ref="property" maxOccurs="unbounded"/>
23            </xs:sequence>
24        </xs:complexType>
25    </xs:element>
26
27    <xs:element name="property">
28        <xs:complexType>
29            <xs:attribute name="name" type="xs:string" use="required"/>
30            <xs:attribute name="value" type="xs:string" use="required"/>
31        </xs:complexType>
32    </xs:element>
33
34    <xs:element name="skipped">
35        <xs:complexType mixed="true">
36            <xs:attribute name="message" type="xs:string" use="optional"/>
37        </xs:complexType>
38    </xs:element>
39
40    <xs:element name="system-err" type="xs:string"/>
41    <xs:element name="system-out" type="xs:string"/>
42
43    <xs:element name="testcase">
44        <xs:complexType>
45            <xs:sequence>
46                <xs:element ref="skipped" minOccurs="0" maxOccurs="1"/>
47                <xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
48                <xs:element ref="failure" minOccurs="0" maxOccurs="unbounded"/>
49                <xs:element ref="system-out" minOccurs="0" maxOccurs="unbounded"/>
50                <xs:element ref="system-err" minOccurs="0" maxOccurs="unbounded"/>
51            </xs:sequence>
52            <xs:attribute name="name" type="xs:string" use="required"/>
53            <xs:attribute name="assertions" type="xs:string" use="optional"/>
54            <xs:attribute name="time" type="xs:string" use="optional"/>
55            <xs:attribute name="classname" type="xs:string" use="optional"/>
56            <xs:attribute name="status" type="xs:string" use="optional"/>
57        </xs:complexType>
58    </xs:element>
59
60    <xs:element name="testsuite">
61        <xs:complexType>
62            <xs:sequence>
63                <xs:element ref="properties" minOccurs="0" maxOccurs="1"/>
64                <xs:element ref="testcase" minOccurs="0" maxOccurs="unbounded"/>
65                <xs:element ref="system-out" minOccurs="0" maxOccurs="1"/>
66                <xs:element ref="system-err" minOccurs="0" maxOccurs="1"/>
67            </xs:sequence>
68            <xs:attribute name="name" type="xs:string" use="required"/>
69            <xs:attribute name="tests" type="xs:string" use="required"/>
70            <xs:attribute name="failures" type="xs:string" use="optional"/>
71            <xs:attribute name="errors" type="xs:string" use="optional"/>
72            <xs:attribute name="time" type="xs:string" use="optional"/>
73            <xs:attribute name="disabled" type="xs:string" use="optional"/>
74            <xs:attribute name="skipped" type="xs:string" use="optional"/>
75            <xs:attribute name="timestamp" type="xs:string" use="optional"/>
76            <xs:attribute name="hostname" type="xs:string" use="optional"/>
77            <xs:attribute name="id" type="xs:string" use="optional"/>
78            <xs:attribute name="package" type="xs:string" use="optional"/>
79        </xs:complexType>
80    </xs:element>
81
82    <xs:element name="testsuites">
83        <xs:complexType>
84            <xs:sequence>
85                <xs:element ref="testsuite" minOccurs="0" maxOccurs="unbounded"/>
86            </xs:sequence>
87            <xs:attribute name="name" type="xs:string" use="optional"/>
88            <xs:attribute name="time" type="xs:string" use="optional"/>
89            <xs:attribute name="tests" type="xs:string" use="optional"/>
90            <xs:attribute name="failures" type="xs:string" use="optional"/>
91            <xs:attribute name="disabled" type="xs:string" use="optional"/>
92            <xs:attribute name="errors" type="xs:string" use="optional"/>
93        </xs:complexType>
94    </xs:element>
95
96</xs:schema>
97