expressir 1.2.3-aarch64-linux → 1.2.6-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.cross_rubies +0 -6
- data/.github/workflows/rake.yml +223 -31
- data/.gitignore +7 -1
- data/.gitmodules +3 -0
- data/.rubocop.yml +13 -4
- data/README.adoc +8 -0
- data/Rakefile +4 -1
- data/bin/console +0 -1
- data/bin/rspec +3 -3
- data/exe/expressir +4 -2
- data/exe/format +1 -1
- data/exe/format-test +25 -25
- data/exe/generate-parser +16 -13
- data/expressir.gemspec +11 -9
- data/lib/expressir/config.rb +1 -1
- data/lib/expressir/express/2.7/express_parser.so +0 -0
- data/lib/expressir/express/3.0/express_parser.so +0 -0
- data/lib/expressir/express/3.1/express_parser.so +0 -0
- data/lib/expressir/express/parser.rb +17 -15
- data/lib/expressir/express/visitor.rb +7 -3
- data/lib/expressir/model.rb +78 -78
- data/lib/expressir/version.rb +1 -1
- data/rakelib/antlr4-native.rake +161 -0
- data/rakelib/cross-ruby.rake +213 -162
- data/spec/acceptance/version_spec.rb +17 -2
- data/spec/expressir/express/cache_spec.rb +23 -5
- data/spec/expressir/express/formatter_spec.rb +54 -8
- data/spec/expressir/express/parser_spec.rb +47 -11
- data/spec/expressir/model/model_element_spec.rb +198 -146
- data/spec/spec_helper.rb +7 -0
- metadata +52 -61
- data/demo.rb +0 -18
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.exp +0 -9589
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.owl +0 -36619
- data/original/examples/ap233/ap233e1_arm_lf_stepmod-2010-11-12.xml +0 -13294
- data/original/examples/employment/eclipse/.project +0 -17
- data/original/examples/employment/eclipse/Export/Employment.png +0 -0
- data/original/examples/employment/eclipse/Express/employment_schema.exp +0 -33
- data/original/examples/employment/eclipse/Express/employment_schema.xmi +0 -77
- data/original/examples/employment/eclipse/Express/employment_schema.xml +0 -93
- data/original/examples/employment/eclipse/Models/Employment.uml +0 -4
- data/original/examples/employment/eclipse/Models/Employment.umldi +0 -240
- data/original/examples/employment/eclipse/readme.txt +0 -7
- data/original/examples/employment/employment_schema.exp +0 -33
- data/original/examples/employment/employment_schema.rb +0 -232
- data/original/examples/employment/employment_schema.xml +0 -93
- data/original/examples/employment/employment_schema___module.rb +0 -46
- data/original/examples/employment/employment_schema___p28attr.rb +0 -126
- data/original/examples/employment/employment_schema___p28inst.rb +0 -26
- data/original/examples/employment/example_employment_data.xml +0 -1
- data/original/examples/employment/example_employment_data_copy.xml +0 -1
- data/original/examples/employment/example_employment_reader.rb +0 -30
- data/original/examples/employment/example_employment_writer.rb +0 -51
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.exp +0 -3710
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.owl +0 -35880
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xmi +0 -15357
- data/original/examples/plcs/ap239e1_arm_lf_dexlib_2010-01-06.xml +0 -9468
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.exp +0 -8404
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl +0 -43147
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi +0 -18341
- data/original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml +0 -11632
- data/original/exp2ruby.rb +0 -525
- data/original/expsm.rb +0 -34
- data/original/mapping_owl.rb +0 -1018
- data/original/mapping_sysml.rb +0 -2281
- data/original/mapping_uml2.rb +0 -599
- data/original/mapping_uml2_eclipse.rb +0 -433
- data/original/reeper.rb +0 -134
- data/spec/expressr_spec.rb +0 -5
@@ -1,232 +0,0 @@
|
|
1
|
-
require "employment_schema___module"
|
2
|
-
require "employment_schema___p28inst"
|
3
|
-
require "employment_schema___p28attr"
|
4
|
-
module EMP
|
5
|
-
class Person
|
6
|
-
include Person___module
|
7
|
-
@@entity = 'Person'
|
8
|
-
@@attr___names = 'Names'
|
9
|
-
@@Person___count = 0
|
10
|
-
def initialize
|
11
|
-
@@Person___count += 1
|
12
|
-
@p28id = 'id-PERSON-' + @@Person___count.to_s
|
13
|
-
end
|
14
|
-
def isValid
|
15
|
-
return case
|
16
|
-
when !isValidPerson___module : false
|
17
|
-
else true
|
18
|
-
end
|
19
|
-
end
|
20
|
-
def writeP28 p28file
|
21
|
-
e___added = p28file.root.add_element('emp:Person', {'id' => @p28id})
|
22
|
-
if names != nil
|
23
|
-
a___names = e___added.add_element('Names')
|
24
|
-
for names___member in names
|
25
|
-
amember___names = a___names.add_element('ex:string-wrapper')
|
26
|
-
amember___names.text = names___member
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
def getP28id
|
31
|
-
@p28id
|
32
|
-
end
|
33
|
-
def putP28id(the_id)
|
34
|
-
@p28id = the_id
|
35
|
-
end
|
36
|
-
def getP28entity
|
37
|
-
return('emp:' + @@entity)
|
38
|
-
end
|
39
|
-
end
|
40
|
-
class Organization
|
41
|
-
include Organization___module
|
42
|
-
@@entity = 'Organization'
|
43
|
-
@@attr___name = 'Name'
|
44
|
-
@@Organization___count = 0
|
45
|
-
def initialize
|
46
|
-
@@Organization___count += 1
|
47
|
-
@p28id = 'id-ORGANIZATION-' + @@Organization___count.to_s
|
48
|
-
end
|
49
|
-
def isValid
|
50
|
-
return case
|
51
|
-
when !isValidOrganization___module : false
|
52
|
-
else true
|
53
|
-
end
|
54
|
-
end
|
55
|
-
def writeP28 p28file
|
56
|
-
e___added = p28file.root.add_element('emp:Organization', {'id' => @p28id})
|
57
|
-
if name != nil
|
58
|
-
a___name = e___added.add_element('Name')
|
59
|
-
a___name.text = name
|
60
|
-
end
|
61
|
-
end
|
62
|
-
def getP28id
|
63
|
-
@p28id
|
64
|
-
end
|
65
|
-
def putP28id(the_id)
|
66
|
-
@p28id = the_id
|
67
|
-
end
|
68
|
-
def getP28entity
|
69
|
-
return('emp:' + @@entity)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
class Personorganizationrelationship
|
73
|
-
include Personorganizationrelationship___module
|
74
|
-
@@entity = 'Personorganizationrelationship'
|
75
|
-
@@attr___the_person = 'The_person'
|
76
|
-
@@attr___the_organization = 'The_organization'
|
77
|
-
@@attr___start_date = 'Start_date'
|
78
|
-
@@attr___end_date = 'End_date'
|
79
|
-
@@Personorganizationrelationship___count = 0
|
80
|
-
def initialize
|
81
|
-
@@Personorganizationrelationship___count += 1
|
82
|
-
@p28id = 'id-PERSONORGANIZATIONRELATIONSHIP-' + @@Personorganizationrelationship___count.to_s
|
83
|
-
end
|
84
|
-
def isValid
|
85
|
-
return case
|
86
|
-
when !isValidPersonorganizationrelationship___module : false
|
87
|
-
else true
|
88
|
-
end
|
89
|
-
end
|
90
|
-
def writeP28 p28file
|
91
|
-
e___added = p28file.root.add_element('emp:Personorganizationrelationship', {'id' => @p28id})
|
92
|
-
if the_person != nil
|
93
|
-
a___the_person = e___added.add_element('The_person')
|
94
|
-
a___the_person = a___the_person.add_element(the_person.getP28entity)
|
95
|
-
a___the_person.attributes['ref'] = the_person.getP28id
|
96
|
-
a___the_person.attributes['xsi:nil'] = 'true'
|
97
|
-
end
|
98
|
-
if the_organization != nil
|
99
|
-
a___the_organization = e___added.add_element('The_organization')
|
100
|
-
a___the_organization = a___the_organization.add_element(the_organization.getP28entity)
|
101
|
-
a___the_organization.attributes['ref'] = the_organization.getP28id
|
102
|
-
a___the_organization.attributes['xsi:nil'] = 'true'
|
103
|
-
end
|
104
|
-
if start_date != nil
|
105
|
-
a___start_date = e___added.add_element('Start_date')
|
106
|
-
a___start_date.text = start_date
|
107
|
-
end
|
108
|
-
if end_date != nil
|
109
|
-
a___end_date = e___added.add_element('End_date')
|
110
|
-
a___end_date.text = end_date
|
111
|
-
end
|
112
|
-
end
|
113
|
-
def getP28id
|
114
|
-
@p28id
|
115
|
-
end
|
116
|
-
def putP28id(the_id)
|
117
|
-
@p28id = the_id
|
118
|
-
end
|
119
|
-
def getP28entity
|
120
|
-
return('emp:' + @@entity)
|
121
|
-
end
|
122
|
-
end
|
123
|
-
class Employment
|
124
|
-
include Personorganizationrelationship___module
|
125
|
-
include Employment___module
|
126
|
-
@@entity = 'Employment'
|
127
|
-
@@attr___job_title = 'Job_title'
|
128
|
-
@@attr___ended_by = 'Ended_by'
|
129
|
-
@@attr___employment_type = 'Employment_type'
|
130
|
-
@@Employment___count = 0
|
131
|
-
def initialize
|
132
|
-
@@Employment___count += 1
|
133
|
-
@p28id = 'id-EMPLOYMENT-' + @@Employment___count.to_s
|
134
|
-
end
|
135
|
-
def isValid
|
136
|
-
return case
|
137
|
-
when !isValidEmployment___module : false
|
138
|
-
when !isValidPersonorganizationrelationship___module : false
|
139
|
-
else true
|
140
|
-
end
|
141
|
-
end
|
142
|
-
def writeP28 p28file
|
143
|
-
e___added = p28file.root.add_element('emp:Employment', {'id' => @p28id})
|
144
|
-
if the_person != nil
|
145
|
-
a___the_person = e___added.add_element('The_person')
|
146
|
-
a___the_person = a___the_person.add_element(the_person.getP28entity)
|
147
|
-
a___the_person.attributes['ref'] = the_person.getP28id
|
148
|
-
a___the_person.attributes['xsi:nil'] = 'true'
|
149
|
-
end
|
150
|
-
if the_organization != nil
|
151
|
-
a___the_organization = e___added.add_element('The_organization')
|
152
|
-
a___the_organization = a___the_organization.add_element(the_organization.getP28entity)
|
153
|
-
a___the_organization.attributes['ref'] = the_organization.getP28id
|
154
|
-
a___the_organization.attributes['xsi:nil'] = 'true'
|
155
|
-
end
|
156
|
-
if start_date != nil
|
157
|
-
a___start_date = e___added.add_element('Start_date')
|
158
|
-
a___start_date.text = start_date
|
159
|
-
end
|
160
|
-
if end_date != nil
|
161
|
-
a___end_date = e___added.add_element('End_date')
|
162
|
-
a___end_date.text = end_date
|
163
|
-
end
|
164
|
-
if job_title != nil
|
165
|
-
a___job_title = e___added.add_element('Job_title')
|
166
|
-
a___job_title.text = job_title
|
167
|
-
end
|
168
|
-
if ended_by != nil
|
169
|
-
a___ended_by = e___added.add_element('Ended_by')
|
170
|
-
a___ended_by = a___ended_by.add_element(ended_by.getP28entity)
|
171
|
-
a___ended_by.attributes['ref'] = ended_by.getP28id
|
172
|
-
a___ended_by.attributes['xsi:nil'] = 'true'
|
173
|
-
end
|
174
|
-
if employment_type != nil
|
175
|
-
a___employment_type = e___added.add_element('Employment_type')
|
176
|
-
a___employment_type.text = employment_type
|
177
|
-
end
|
178
|
-
end
|
179
|
-
def getP28id
|
180
|
-
@p28id
|
181
|
-
end
|
182
|
-
def putP28id(the_id)
|
183
|
-
@p28id = the_id
|
184
|
-
end
|
185
|
-
def getP28entity
|
186
|
-
return('emp:' + @@entity)
|
187
|
-
end
|
188
|
-
end
|
189
|
-
class Model___data
|
190
|
-
attr_reader :model_elements, :model_name, :namespace, :originating_system, :preprocessor_version
|
191
|
-
attr_writer :model_elements, :model_name, :namespace, :originating_system, :preprocessor_version
|
192
|
-
def initialize
|
193
|
-
@model_elements = []
|
194
|
-
@namespace = 'emp'
|
195
|
-
end
|
196
|
-
def readP28e2 p28doc
|
197
|
-
puts 'Reading P28E2 XML'
|
198
|
-
read_P28_entity_instances(p28doc,self)
|
199
|
-
read_P28_attribute_values(p28doc,self)
|
200
|
-
end
|
201
|
-
require 'time'
|
202
|
-
def writeP28e2 p28file
|
203
|
-
puts 'Writing P28E2 with XML namespace = ' + namespace
|
204
|
-
@p28file = p28file
|
205
|
-
p28file << XMLDecl.new
|
206
|
-
the_ns = 'xmlns:' + namespace
|
207
|
-
the_uos = namespace + ':uos'
|
208
|
-
uos = p28file.add_element(the_uos, {the_ns => 'urn:iso10303-28:schema/Employment_schema'})
|
209
|
-
uos.add_namespace('xsi','http://www.w3.org/2001/XMLSchema-instance')
|
210
|
-
uos.add_namespace('ex','urn:iso:std:iso:10303:28:ed-2:2005:schema:common')
|
211
|
-
uos.add_namespace('exp','urn:iso:std:iso:10303:28:ed-2:2005:schema:common')
|
212
|
-
uos.add_attribute('xsi:schemaLocation','urn:iso10303-28:schema/Employment_schema Employment_schema.xsd')
|
213
|
-
header = p28file.root.add_element('exp:header')
|
214
|
-
t = header.add_element('time_stamp')
|
215
|
-
t.text = Time.now.xmlschema()
|
216
|
-
if self.originating_system != nil
|
217
|
-
t = header.add_element('preprocessor_version')
|
218
|
-
t.text = self.preprocessor_version
|
219
|
-
end
|
220
|
-
if self.originating_system != nil
|
221
|
-
t = header.add_element('originating_system')
|
222
|
-
t.text = self.originating_system
|
223
|
-
end
|
224
|
-
i = 1
|
225
|
-
for e in model_elements
|
226
|
-
puts i
|
227
|
-
e.writeP28(p28file)
|
228
|
-
i = i + 1
|
229
|
-
end
|
230
|
-
end
|
231
|
-
end
|
232
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
|
3
|
-
<express
|
4
|
-
language_version="2"
|
5
|
-
rcs.date="$Date: $"
|
6
|
-
rcs.revision="$Revision: $">
|
7
|
-
|
8
|
-
<application
|
9
|
-
name=" Eurostep EXPRESS Parser (Eep!)"
|
10
|
-
owner="Eurostep Limited"
|
11
|
-
url="www.eurostep.com"
|
12
|
-
version="1, 4, 36, 40"
|
13
|
-
source="employment_schema.exp"/>
|
14
|
-
|
15
|
-
<schema name="employment_schema">
|
16
|
-
<type name="date">
|
17
|
-
<builtintype type="STRING"
|
18
|
-
/>
|
19
|
-
</type>
|
20
|
-
|
21
|
-
<type name="po">
|
22
|
-
<select
|
23
|
-
selectitems="Person Organization"
|
24
|
-
/>
|
25
|
-
</type>
|
26
|
-
|
27
|
-
<type name="contract_type">
|
28
|
-
<enumeration
|
29
|
-
items="contract atwill contractor"
|
30
|
-
/>
|
31
|
-
</type>
|
32
|
-
|
33
|
-
<entity name="Person"
|
34
|
-
>
|
35
|
-
<explicit
|
36
|
-
name="names">
|
37
|
-
<aggregate type="LIST"
|
38
|
-
/>
|
39
|
-
<builtintype type="STRING"
|
40
|
-
/>
|
41
|
-
</explicit>
|
42
|
-
</entity>
|
43
|
-
|
44
|
-
<entity name="Organization"
|
45
|
-
>
|
46
|
-
<explicit
|
47
|
-
name="name">
|
48
|
-
<builtintype type="STRING"
|
49
|
-
/>
|
50
|
-
</explicit>
|
51
|
-
</entity>
|
52
|
-
|
53
|
-
<entity name="PersonOrganizationRelationship"
|
54
|
-
>
|
55
|
-
<explicit
|
56
|
-
name="the_person">
|
57
|
-
<typename name="Person"/>
|
58
|
-
</explicit>
|
59
|
-
<explicit
|
60
|
-
name="the_organization">
|
61
|
-
<typename name="Organization"/>
|
62
|
-
</explicit>
|
63
|
-
<explicit
|
64
|
-
name="start_date">
|
65
|
-
<typename name="date"/>
|
66
|
-
</explicit>
|
67
|
-
<explicit
|
68
|
-
name="end_date">
|
69
|
-
<typename name="date"/>
|
70
|
-
</explicit>
|
71
|
-
</entity>
|
72
|
-
|
73
|
-
<entity name="Employment"
|
74
|
-
supertypes="PersonOrganizationRelationship"
|
75
|
-
>
|
76
|
-
<explicit
|
77
|
-
name="job_title">
|
78
|
-
<builtintype type="STRING"
|
79
|
-
/>
|
80
|
-
</explicit>
|
81
|
-
<explicit
|
82
|
-
name="ended_by">
|
83
|
-
<typename name="po"/>
|
84
|
-
</explicit>
|
85
|
-
<explicit
|
86
|
-
name="employment_type">
|
87
|
-
<typename name="contract_type"/>
|
88
|
-
</explicit>
|
89
|
-
</entity>
|
90
|
-
|
91
|
-
</schema>
|
92
|
-
|
93
|
-
</express>
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Person___module
|
2
|
-
attr_accessor :names
|
3
|
-
def isValidPerson___module
|
4
|
-
return case
|
5
|
-
when names == nil : false
|
6
|
-
else true
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
module Organization___module
|
11
|
-
attr_accessor :name
|
12
|
-
def isValidOrganization___module
|
13
|
-
return case
|
14
|
-
when name == nil : false
|
15
|
-
else true
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
module Personorganizationrelationship___module
|
20
|
-
attr_accessor :the_person
|
21
|
-
attr_accessor :the_organization
|
22
|
-
attr_accessor :start_date
|
23
|
-
attr_accessor :end_date
|
24
|
-
def isValidPersonorganizationrelationship___module
|
25
|
-
return case
|
26
|
-
when the_person == nil : false
|
27
|
-
when the_organization == nil : false
|
28
|
-
when start_date == nil : false
|
29
|
-
when end_date == nil : false
|
30
|
-
else true
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
module Employment___module
|
35
|
-
attr_accessor :job_title
|
36
|
-
attr_accessor :ended_by
|
37
|
-
attr_accessor :employment_type
|
38
|
-
def isValidEmployment___module
|
39
|
-
return case
|
40
|
-
when job_title == nil : false
|
41
|
-
when ended_by == nil : false
|
42
|
-
when employment_type == nil : false
|
43
|
-
else true
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,126 +0,0 @@
|
|
1
|
-
def read_P28_attribute_values(p28doc,m)
|
2
|
-
uos = p28doc.root
|
3
|
-
for entity in uos.elements.to_a()
|
4
|
-
id = entity.attribute('id')
|
5
|
-
i = 0
|
6
|
-
if entity.name != 'header'
|
7
|
-
while i != -1
|
8
|
-
tempid = m.model_elements[i].getP28id
|
9
|
-
if tempid == id.to_s
|
10
|
-
r = m.model_elements[i]
|
11
|
-
i = -2
|
12
|
-
end
|
13
|
-
i = i + 1
|
14
|
-
end
|
15
|
-
end
|
16
|
-
if entity.name == 'Person'
|
17
|
-
for child in entity.elements
|
18
|
-
if child.name == 'Names'
|
19
|
-
memlist = []
|
20
|
-
for member in child.elements
|
21
|
-
memlist.push member.text()
|
22
|
-
end
|
23
|
-
r.names= memlist
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
if entity.name == 'Organization'
|
28
|
-
for child in entity.elements
|
29
|
-
if child.name == 'Name'
|
30
|
-
r.name= child.text()
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
if entity.name == 'PersonOrganizationRelationship'
|
35
|
-
for child in entity.elements
|
36
|
-
if child.name == 'The_person'
|
37
|
-
ref = child.elements[1].attribute('ref')
|
38
|
-
i = 0
|
39
|
-
while i != -1
|
40
|
-
tempid = m.model_elements[i].getP28id.to_s
|
41
|
-
if tempid == ref.to_s
|
42
|
-
p = m.model_elements[i]
|
43
|
-
i = -2
|
44
|
-
end
|
45
|
-
i = i + 1
|
46
|
-
end
|
47
|
-
r.the_person= p
|
48
|
-
end
|
49
|
-
if child.name == 'The_organization'
|
50
|
-
ref = child.elements[1].attribute('ref')
|
51
|
-
i = 0
|
52
|
-
while i != -1
|
53
|
-
tempid = m.model_elements[i].getP28id.to_s
|
54
|
-
if tempid == ref.to_s
|
55
|
-
p = m.model_elements[i]
|
56
|
-
i = -2
|
57
|
-
end
|
58
|
-
i = i + 1
|
59
|
-
end
|
60
|
-
r.the_organization= p
|
61
|
-
end
|
62
|
-
if child.name == 'Start_date'
|
63
|
-
r.start_date= child.text()
|
64
|
-
end
|
65
|
-
if child.name == 'End_date'
|
66
|
-
r.end_date= child.text()
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
if entity.name == 'Employment'
|
71
|
-
for child in entity.elements
|
72
|
-
if child.name == 'The_person'
|
73
|
-
ref = child.elements[1].attribute('ref')
|
74
|
-
i = 0
|
75
|
-
while i != -1
|
76
|
-
tempid = m.model_elements[i].getP28id.to_s
|
77
|
-
if tempid == ref.to_s
|
78
|
-
p = m.model_elements[i]
|
79
|
-
i = -2
|
80
|
-
end
|
81
|
-
i = i + 1
|
82
|
-
end
|
83
|
-
r.the_person= p
|
84
|
-
end
|
85
|
-
if child.name == 'The_organization'
|
86
|
-
ref = child.elements[1].attribute('ref')
|
87
|
-
i = 0
|
88
|
-
while i != -1
|
89
|
-
tempid = m.model_elements[i].getP28id.to_s
|
90
|
-
if tempid == ref.to_s
|
91
|
-
p = m.model_elements[i]
|
92
|
-
i = -2
|
93
|
-
end
|
94
|
-
i = i + 1
|
95
|
-
end
|
96
|
-
r.the_organization= p
|
97
|
-
end
|
98
|
-
if child.name == 'Start_date'
|
99
|
-
r.start_date= child.text()
|
100
|
-
end
|
101
|
-
if child.name == 'End_date'
|
102
|
-
r.end_date= child.text()
|
103
|
-
end
|
104
|
-
if child.name == 'Job_title'
|
105
|
-
r.job_title= child.text()
|
106
|
-
end
|
107
|
-
if child.name == 'Ended_by'
|
108
|
-
ref = child.elements[1].attribute('ref')
|
109
|
-
i = 0
|
110
|
-
while i != -1
|
111
|
-
tempid = m.model_elements[i].getP28id.to_s
|
112
|
-
if tempid == ref.to_s
|
113
|
-
p = m.model_elements[i]
|
114
|
-
i = -2
|
115
|
-
end
|
116
|
-
i = i + 1
|
117
|
-
end
|
118
|
-
r.ended_by= p
|
119
|
-
end
|
120
|
-
if child.name == 'Employment_type'
|
121
|
-
r.employment_type= child.text()
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
def read_P28_entity_instances(p28doc,m)
|
2
|
-
uos = p28doc.root
|
3
|
-
for entity in uos.elements.to_a()
|
4
|
-
id = entity.attribute('id')
|
5
|
-
if entity.name == 'Person'
|
6
|
-
r = EMP::Person.new
|
7
|
-
m.model_elements.push r
|
8
|
-
r.putP28id(id.to_s)
|
9
|
-
end
|
10
|
-
if entity.name == 'Organization'
|
11
|
-
r = EMP::Organization.new
|
12
|
-
m.model_elements.push r
|
13
|
-
r.putP28id(id.to_s)
|
14
|
-
end
|
15
|
-
if entity.name == 'PersonOrganizationRelationship'
|
16
|
-
r = EMP::PersonOrganizationRelationship.new
|
17
|
-
m.model_elements.push r
|
18
|
-
r.putP28id(id.to_s)
|
19
|
-
end
|
20
|
-
if entity.name == 'Employment'
|
21
|
-
r = EMP::Employment.new
|
22
|
-
m.model_elements.push r
|
23
|
-
r.putP28id(id.to_s)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0'?><emp:uos xsi:schemaLocation='urn:iso10303-28:schema/Employment_schema Employment_schema.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:exp='urn:iso:std:iso:10303:28:ed-2:2005:schema:common' xmlns:ex='urn:iso:std:iso:10303:28:ed-2:2005:schema:common' xmlns:emp='urn:iso10303-28:schema/Employment_schema'><exp:header><time_stamp>2009-09-10T13:43:19+01:00</time_stamp></exp:header><emp:Organization id='id-ORGANIZATION-1'><Name>Acme Plumbing</Name></emp:Organization><emp:Employment id='id-EMPLOYMENT-1'><The_person><emp:Person xsi:nil='true' ref='id-PERSON-1'/></The_person><The_organization><emp:Organization xsi:nil='true' ref='id-ORGANIZATION-1'/></The_organization><Start_date>2008-04-01</Start_date><End_date>2008-06-01</End_date><Job_title>Apprentice</Job_title><Ended_by><emp:Person xsi:nil='true' ref='id-PERSON-1'/></Ended_by><Employment_type>atwill</Employment_type></emp:Employment><emp:Person id='id-PERSON-1'><Names><ex:string-wrapper>Joe</ex:string-wrapper><ex:string-wrapper>Plumber</ex:string-wrapper></Names></emp:Person></emp:uos>
|
@@ -1 +0,0 @@
|
|
1
|
-
<?xml version='1.0'?><emp:uos xsi:schemaLocation='urn:iso10303-28:schema/Employment_schema Employment_schema.xsd' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:exp='urn:iso:std:iso:10303:28:ed-2:2005:schema:common' xmlns:ex='urn:iso:std:iso:10303:28:ed-2:2005:schema:common' xmlns:emp='urn:iso10303-28:schema/Employment_schema'><exp:header><time_stamp>2009-09-10T12:40:31+01:00</time_stamp></exp:header><emp:Organization id='id-ORGANIZATION-1'><Name>Acme Plumbing</Name></emp:Organization><emp:Employment id='id-EMPLOYMENT-1'><The_person><emp:Person xsi:nil='true' ref='id-PERSON-1'/></The_person><The_organization><emp:Organization xsi:nil='true' ref='id-ORGANIZATION-1'/></The_organization><Start_date>2008-04-01</Start_date><End_date>2008-06-01</End_date><Job_title>Apprentice</Job_title><Ended_by><emp:Person xsi:nil='true' ref='id-PERSON-1'/></Ended_by><Employment_type>atwill</Employment_type></emp:Employment><emp:Person id='id-PERSON-1'><Names><ex:string-wrapper>Joe</ex:string-wrapper><ex:string-wrapper>Plumber</ex:string-wrapper></Names></emp:Person></emp:uos>
|
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'employment_schema'
|
2
|
-
require 'rexml/document'
|
3
|
-
include REXML
|
4
|
-
include EMP
|
5
|
-
$xnspre = "emp"
|
6
|
-
##
|
7
|
-
infile = File.new("example_employment_data.xml","r")
|
8
|
-
doc = REXML::Document.new infile
|
9
|
-
## create a model container for the data instances
|
10
|
-
m = EMP::Model___data.new
|
11
|
-
##
|
12
|
-
## Set the XML Namespace for the P28 E2 file
|
13
|
-
m.namespace = $xnspre
|
14
|
-
## Give model a name if you want
|
15
|
-
m.model_name = "Test dataset 1"
|
16
|
-
m.model_elements = []
|
17
|
-
m.readP28e2(doc)
|
18
|
-
if m.model_elements.size != 0
|
19
|
-
puts "Copied " + m.model_elements.size.to_s
|
20
|
-
for e in m.model_elements
|
21
|
-
puts "p28id = " + e.getP28id.to_s
|
22
|
-
end
|
23
|
-
##
|
24
|
-
## Set up the XML file and write all data in the model container to the file
|
25
|
-
datafile = File.new("example_employment_data_copy.xml","w")
|
26
|
-
p28file = REXML::Document.new
|
27
|
-
m.writeP28e2 p28file
|
28
|
-
datafile.puts p28file
|
29
|
-
datafile.close
|
30
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'employment_schema'
|
2
|
-
require 'rexml/document'
|
3
|
-
include REXML
|
4
|
-
include EMP
|
5
|
-
##
|
6
|
-
## create a model container for the data instances
|
7
|
-
##
|
8
|
-
mydata = EMP::Model___data.new
|
9
|
-
mydata.model_elements = []
|
10
|
-
##
|
11
|
-
## create an organization
|
12
|
-
##
|
13
|
-
org1 = EMP::Organization.new
|
14
|
-
##
|
15
|
-
## check that all mandatory attrs are set
|
16
|
-
##
|
17
|
-
puts 'Without name, org1 isValid = ' + org1.isValid.to_s
|
18
|
-
org1.name = 'Acme Plumbing'
|
19
|
-
##
|
20
|
-
## check again that all mandatory attrs are set
|
21
|
-
##
|
22
|
-
puts 'With name, org1 isValid = ' + org1.isValid.to_s
|
23
|
-
|
24
|
-
per1 = EMP::Person.new
|
25
|
-
per1.names = []
|
26
|
-
per1.names.push 'Joe'
|
27
|
-
per1.names.push 'Plumber'
|
28
|
-
|
29
|
-
emp1 = EMP::Employment.new
|
30
|
-
emp1.the_person = per1
|
31
|
-
emp1.the_organization = org1
|
32
|
-
emp1.start_date = '2008-04-01'
|
33
|
-
emp1.end_date = '2008-06-01'
|
34
|
-
emp1.job_title = 'Apprentice'
|
35
|
-
emp1.ended_by = per1
|
36
|
-
emp1.employment_type = 'atwill'
|
37
|
-
|
38
|
-
##
|
39
|
-
## put all instances in the model container, this is what gets written to XML
|
40
|
-
##
|
41
|
-
mydata.model_elements.push org1
|
42
|
-
mydata.model_elements.push emp1
|
43
|
-
mydata.model_elements.push per1
|
44
|
-
##
|
45
|
-
## Set up the XML file and write all data in the model container to the file
|
46
|
-
##
|
47
|
-
datafile = File.new("example_employment_data.xml","w")
|
48
|
-
p28file = REXML::Document.new
|
49
|
-
mydata.writeP28e2 p28file
|
50
|
-
datafile.puts p28file
|
51
|
-
datafile.close
|