-
Notifications
You must be signed in to change notification settings - Fork 10
/
xmlCallstack.xsd
159 lines (152 loc) · 7.6 KB
/
xmlCallstack.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- ***************************************************************************
* Copyright (c) 2016 École Polytechnique de Montréal and others
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*************************************************************************** -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="unqualified" elementFormDefault="qualified">
<xs:element name="callstack" substitutionGroup="extra" type="callstackType"/>
<xs:complexType name="callstackType">
<xs:complexContent>
<xs:extension base="extraType">
<xs:annotation>
<xs:documentation>Declares a callstack path in the state system. If part of the state system describes a callstack, defining a callstack element will allow the analysis to have access to all callstack analysis information.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="1" name="callstackGroup" type="callstackGroup">
<xs:annotation>
<xs:documentation>Defines a value that maps a string used in the pattern state provider to a numbered value.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element maxOccurs="1" minOccurs="0" name="analysis">
<xs:annotation>
<xs:documentation>The ID of the analysis whose state system is to be used as base for the state system. Both the callstack and the analysis it links to will appear for a given trace. The trace type it applies to are the same as the base analysis.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The ID of the analysis whose state system is to be used as base for the state system. Both the callstack and the analysis it links to will appear for a given trace. The trace type it applies to are the same as the base analysis.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="pattern" type="pattern" >
<xs:annotation>
<xs:documentation>Defines an internal pattern analysis that will be used to populate the callstack. This analysis will not appear under the trace, only the callstack one, but its label and trace type will be used for the callstack analysis</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="stateProvider" type="stateProvider" >
<xs:annotation>
<xs:documentation>Defines an internal state system analysis that will be used to populate the callstack. This analysis will not appear under the trace, only the callstack one, but its label and trace type will be used for the callstack analysis</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" >
<xs:annotation>
<xs:documentation>The unique ID of this callstack. It will be used to identify the analysis that will be built from this pattern provider.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="callstackGroup">
<xs:annotation>
<xs:documentation>Declares a callstack path in the state system. If part of the state system describes a callstack, defining a callstack element will allow the analysis to have access to all callstack analysis information.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="level" type="callstackLevel">
<xs:annotation>
<xs:documentation>Defines the path in the state system that describes a level of the callstack.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="thread" type="callstackThreadProvider">
<xs:annotation>
<xs:documentation>Defines how to get the thread ID of the thread doing the callstack.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="host" type="callstackHostProvider">
<xs:annotation>
<xs:documentation>Defines how to get the host ID for a callstack.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>A name to identify this callstack group</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="callstackLevel">
<xs:annotation>
<xs:documentation>Defines a level in the callstack</xs:documentation>
</xs:annotation>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The path from the root of the state system where the callstack process pattern starts. It can be empty.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="callstackThreadProvider">
<xs:annotation>
<xs:documentation>Defines the way to get the thread ID for the callstack.</xs:documentation>
</xs:annotation>
<xs:attribute name="cpu" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The path relative to the last element of the callstack where to find the CPU that will be used to get the Thread ID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="level" type="xs:integer" use="optional">
<xs:annotation>
<xs:documentation>The level whose value contains the thread ID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>Describe where at this level the thread ID value is.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="name" >
<xs:annotation>
<xs:documentation>The thread ID is the name of the level</xs:documentation></xs:annotation></xs:enumeration>
<xs:enumeration value="value" >
<xs:annotation>
<xs:documentation>The thread ID is the value at this level</xs:documentation></xs:annotation></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
<xs:complexType name="callstackHostProvider">
<xs:annotation>
<xs:documentation>Defines the way to get the host ID for the callstack.</xs:documentation>
</xs:annotation>
<xs:attribute name="level" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>The level whose data to use to get the host ID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>Describe where at this level the host ID is.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="name" >
<xs:annotation>
<xs:documentation>The host ID is the name of the level</xs:documentation></xs:annotation></xs:enumeration>
<xs:enumeration value="value" >
<xs:annotation>
<xs:documentation>The host ID is the value at this level</xs:documentation></xs:annotation></xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:schema>