File size: 6,575 Bytes
8097001
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <!--  This file describes the XML serialization of the OCL format for object-centric event log data.  -->
    <!--  (c) 2020 by Chair of Process and Data Science (http://www.pads.rwth-aachen.de)  -->
    <!--  Date: Nov. 13, 2020  -->
    <!--  Version 0.1  -->
    <!--  Author: Gyunam Park (gnpark@pads.rwth-aachen.de)  -->
    <!--  Draft for the formal format of object-centric event log data  -->
    <xs:element name="log" type="LogType"/>
    <!--  Attributables  -->
    <xs:complexType name="AttributableType">
        <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="string" minOccurs="0" maxOccurs="unbounded" type="AttributeStringType"/>
            <xs:element name="date" minOccurs="0" maxOccurs="unbounded" type="AttributeDateType"/>
            <xs:element name="int" minOccurs="0" maxOccurs="unbounded" type="AttributeIntType"/>
            <xs:element name="float" minOccurs="0" maxOccurs="unbounded" type="AttributeFloatType"/>
            <xs:element name="boolean" minOccurs="0" maxOccurs="unbounded" type="AttributeBooleanType"/>
            <xs:element name="id" minOccurs="0" maxOccurs="unbounded" type="AttributeIDType"/>
            <xs:element name="list" minOccurs="0" maxOccurs="unbounded" type="AttributeListType"/>
            <xs:element name="container" minOccurs="0" maxOccurs="unbounded" type="AttributeContainerType"/>
        </xs:choice>
    </xs:complexType>
    <!--  String attribute  -->
    <xs:complexType name="AttributeStringType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:string"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Date attribute  -->
    <xs:complexType name="AttributeDateType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:dateTime"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Integer attribute  -->
    <xs:complexType name="AttributeIntType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:long"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Floating-point attribute  -->
    <xs:complexType name="AttributeFloatType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:double"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Boolean attribute  -->
    <xs:complexType name="AttributeBooleanType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:boolean"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  ID attribute  -->
    <xs:complexType name="AttributeIDType">
        <xs:complexContent>
            <xs:extension base="AttributeType">
                <xs:attribute name="value" use="required" type="xs:string"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  List attribute  -->
    <xs:complexType name="AttributeListType">
        <xs:complexContent>
            <xs:extension base="AttributeType"></xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Container attribute  -->
    <xs:complexType name="AttributeContainerType">
        <xs:complexContent>
            <xs:extension base="AttributableType"></xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Globals definition  -->
    <xs:complexType name="GlobalsType">
        <xs:complexContent>
            <xs:extension base="AttributableType">
                <xs:attribute name="scope" type="xs:NCName" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Attribute  -->
    <xs:complexType name="AttributeType">
        <xs:complexContent>
            <xs:extension base="AttributableType">
                <xs:attribute name="key" use="required" type="xs:Name"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Elements may contain attributes  -->
    <xs:complexType name="ElementType">
        <xs:complexContent>
            <xs:extension base="AttributableType"/>
        </xs:complexContent>
    </xs:complexType>
    <!--  Logs are elements that may contain executions  -->
    <xs:complexType name="LogType">
        <xs:complexContent>
            <xs:extension base="ElementType">
                <xs:sequence>
                    <xs:element name="global" minOccurs="0" maxOccurs="4" type="GlobalsType"/>
                    <xs:element name="events" minOccurs="0" maxOccurs="unbounded" type="EventsType"/>
                    <xs:element name="objects" minOccurs="0" maxOccurs="unbounded" type="ObjectsType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Executions are elements that may contain events  -->
    <xs:complexType name="EventsType">
        <xs:complexContent>
            <xs:extension base="ElementType">
                <xs:sequence>
                    <xs:element name="event" minOccurs="0" maxOccurs="unbounded" type="EventType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Events are elements  -->
    <xs:complexType name="EventType">
        <xs:complexContent>
            <xs:extension base="ElementType">
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Specifications are elements that may contain data  -->
    <xs:complexType name="ObjectsType">
        <xs:complexContent>
            <xs:extension base="ElementType">
                <xs:sequence>
                    <xs:element name="object" minOccurs="0" maxOccurs="unbounded" type="ObjectType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <!--  Objects are elements  -->
    <xs:complexType name="ObjectType">
        <xs:complexContent>
            <xs:extension base="ElementType">
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>