xsd-reader 0.2.0 → 0.3.0
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/lib/xsd_reader/complex_type.rb +0 -4
- data/lib/xsd_reader/shared.rb +28 -5
- data/spec/element_spec.rb +136 -73
- data/spec/examples/referencing.xsd +70 -0
- data/spec/xsd_reader_spec.rb +79 -1
- data/xsd-reader.gemspec +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 400a3673c38ae983e49e7d63dfd1dc80daaa027e
|
4
|
+
data.tar.gz: 0e2be864321537a953e21a63bd33f520f5b0d679
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd2dcc16a9996af3ee4898e6f4d039245d52946bf2429fcf2952400c305acf94947afd324ecd81a70458ea357bdac7305310a459dd442cfc79bda12558771a89
|
7
|
+
data.tar.gz: 0998edb3ce6a52e8202c277db093e71b997d2cc7c921c6dc95428bec33caaed1be925d5b8e8dbf9c45a235a13c08bfde70902184e74fc06d2a9c869705c7fa7f
|
data/lib/xsd_reader/shared.rb
CHANGED
@@ -49,11 +49,29 @@ module XsdReader
|
|
49
49
|
# attribute properties
|
50
50
|
#
|
51
51
|
def name
|
52
|
-
|
52
|
+
name_local || name_referenced
|
53
53
|
end
|
54
54
|
|
55
|
+
def name_local
|
56
|
+
node.attributes['name'] ? node.attributes['name'].value : nil
|
57
|
+
end
|
58
|
+
|
59
|
+
def name_referenced
|
60
|
+
referenced_element ? referenced_element.name : nil
|
61
|
+
end
|
62
|
+
|
63
|
+
def ref
|
64
|
+
node.attributes['ref'] ? node.attributes['ref'].value : nil
|
65
|
+
end
|
66
|
+
|
67
|
+
def referenced_element
|
68
|
+
ref && schema ? schema.elements.find{|el| el.name == ref} : nil
|
69
|
+
end
|
70
|
+
|
71
|
+
|
55
72
|
def type
|
56
|
-
node.attributes['type'] ? node.attributes['type'].value : nil
|
73
|
+
type = node.attributes['type'] ? node.attributes['type'].value : nil
|
74
|
+
type || (referenced_element ? referenced_element.type : nil)
|
57
75
|
end
|
58
76
|
|
59
77
|
def type_name
|
@@ -64,6 +82,7 @@ module XsdReader
|
|
64
82
|
type ? type.split(':').first : nil
|
65
83
|
end
|
66
84
|
|
85
|
+
|
67
86
|
# base stuff belongs to extension type objects only, but let's be flexible
|
68
87
|
def base
|
69
88
|
node.attributes['base'] ? node.attributes['base'].value : nil
|
@@ -77,6 +96,7 @@ module XsdReader
|
|
77
96
|
base ? base.split(':').first : nil
|
78
97
|
end
|
79
98
|
|
99
|
+
|
80
100
|
#
|
81
101
|
# Node to class mapping
|
82
102
|
#
|
@@ -135,7 +155,9 @@ module XsdReader
|
|
135
155
|
end
|
136
156
|
|
137
157
|
def all_elements
|
138
|
-
@all_elements ||= ordered_elements +
|
158
|
+
@all_elements ||= ordered_elements +
|
159
|
+
(linked_complex_type ? linked_complex_type.all_elements : []) +
|
160
|
+
(referenced_element ? referenced_element.all_elements : [])
|
139
161
|
end
|
140
162
|
|
141
163
|
def child_elements?
|
@@ -143,7 +165,8 @@ module XsdReader
|
|
143
165
|
end
|
144
166
|
|
145
167
|
def attributes
|
146
|
-
@attributes ||= map_children('xs:attribute')
|
168
|
+
@attributes ||= map_children('xs:attribute') #+
|
169
|
+
#(referenced_element ? referenced_element.attributes : [])
|
147
170
|
end
|
148
171
|
|
149
172
|
def sequences
|
@@ -159,7 +182,7 @@ module XsdReader
|
|
159
182
|
end
|
160
183
|
|
161
184
|
def complex_type
|
162
|
-
complex_types.first || linked_complex_type
|
185
|
+
complex_types.first || linked_complex_type || (referenced_element ? referenced_element.complex_type : nil)
|
163
186
|
end
|
164
187
|
|
165
188
|
def linked_complex_type
|
data/spec/element_spec.rb
CHANGED
@@ -10,80 +10,57 @@ describe XsdReader::Element do
|
|
10
10
|
reader.elements[0]
|
11
11
|
}
|
12
12
|
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
let(:referencing_reader){
|
14
|
+
XsdReader::XML.new(:xsd_file => File.expand_path('examples/referencing.xsd', File.dirname(__FILE__)))
|
15
|
+
}
|
16
16
|
|
17
|
-
|
18
|
-
|
19
|
-
|
17
|
+
describe '#[]' do
|
18
|
+
it "gives an element's child" do
|
19
|
+
expect(reader['NewReleaseMessage']).to eq reader.elements[0]
|
20
|
+
end
|
20
21
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
"MessageHeader",
|
25
|
-
"UpdateIndicator",
|
26
|
-
"IsBackfill",
|
27
|
-
"CatalogTransfer",
|
28
|
-
"WorkList",
|
29
|
-
"CueSheetList",
|
30
|
-
"ResourceList",
|
31
|
-
"CollectionList",
|
32
|
-
"ReleaseList",
|
33
|
-
"DealList"]
|
22
|
+
it "gives an element's child through reference element" do
|
23
|
+
expect(referencing_reader['Album', 'Tracks', 'Track', 'ISRC'].type).to eq 'xs:NCName'
|
24
|
+
end
|
34
25
|
end
|
35
26
|
|
36
|
-
describe
|
37
|
-
|
38
|
-
element.
|
39
|
-
}
|
40
|
-
|
41
|
-
it "gives the type name" do
|
42
|
-
expect(header.type_name).to eq 'MessageHeader'
|
27
|
+
describe '#name' do
|
28
|
+
it "gives the element's name" do
|
29
|
+
expect(element.name).to eq 'NewReleaseMessage'
|
43
30
|
end
|
44
31
|
|
45
|
-
it "gives the
|
46
|
-
expect(
|
32
|
+
it "gives the element's name obtained through reference" do
|
33
|
+
expect(referencing_reader.elements[0].elements[0].name).to eq 'Source'
|
47
34
|
end
|
35
|
+
end
|
48
36
|
|
49
|
-
|
50
|
-
|
37
|
+
describe '#ref' do
|
38
|
+
it "gives an element's ref attribute value" do
|
39
|
+
expect(referencing_reader['Album']['Source'].ref).to eq 'Source'
|
51
40
|
end
|
52
41
|
|
53
|
-
it "
|
54
|
-
expect(
|
42
|
+
it "returns nil when attribute available" do
|
43
|
+
expect(element.ref).to eq nil
|
55
44
|
end
|
45
|
+
end
|
56
46
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
"MessageFileName",
|
62
|
-
"MessageSender",
|
63
|
-
"SentOnBehalfOf",
|
64
|
-
"MessageRecipient",
|
65
|
-
"MessageCreatedDateTime",
|
66
|
-
"MessageAuditTrail",
|
67
|
-
"Comment",
|
68
|
-
"MessageControlType"]
|
47
|
+
describe '#type' do
|
48
|
+
it "gives the type of an element" do
|
49
|
+
expect(reader['NewReleaseMessage']['MessageHeader'].type).to eq 'ern:MessageHeader'
|
50
|
+
end
|
69
51
|
|
70
|
-
|
71
|
-
expect(
|
52
|
+
it "gives the type of an elements obtained through the referenced element" do
|
53
|
+
expect(referencing_reader['Album']['Source'].type).to eq 'xs:string'
|
72
54
|
end
|
73
55
|
end
|
74
56
|
|
75
|
-
describe
|
76
|
-
|
77
|
-
|
78
|
-
el = element.elements[3]
|
79
|
-
expect(el.name).to eq 'CatalogTransfer'
|
80
|
-
elements_without = ["CatalogTransferCompleted", "EffectiveTransferDate", "CatalogReleaseReferenceList", "TransferringFrom", "TransferringTo"]
|
81
|
-
elements_with = ["CatalogTransferCompleted", "EffectiveTransferDate", "CatalogReleaseReferenceList", "TerritoryCode", "ExcludedTerritoryCode", "TransferringFrom", "TransferringTo"]
|
82
|
-
expect(el.complex_type.sequences.map{|seq| seq.elements}.flatten.map(&:name)).to eq elements_without
|
83
|
-
expect(el.complex_type.all_elements.map(&:name)).to eq elements_with
|
84
|
-
expect(el.complex_type.sequences[0].choices.map{|ch| ch.elements}.flatten.map(&:name)).to eq elements_with - elements_without
|
57
|
+
describe '#complex_type' do
|
58
|
+
it "gives a complex type reader" do
|
59
|
+
expect(element.complex_type.class).to eq XsdReader::ComplexType
|
85
60
|
end
|
61
|
+
end
|
86
62
|
|
63
|
+
describe "#elements" do
|
87
64
|
it "gives child elements in the right order" do
|
88
65
|
expected = [
|
89
66
|
"CommercialModelType",
|
@@ -116,6 +93,109 @@ describe XsdReader::Element do
|
|
116
93
|
|
117
94
|
expect(reader['NewReleaseMessage']['DealList']['ReleaseDeal']['Deal']['DealTerms'].elements.map(&:name)).to eq expected
|
118
95
|
end
|
96
|
+
|
97
|
+
it "includes elements within a choice node" do
|
98
|
+
el = element.elements[3]
|
99
|
+
expect(el.name).to eq 'CatalogTransfer'
|
100
|
+
elements_without = ["CatalogTransferCompleted", "EffectiveTransferDate", "CatalogReleaseReferenceList", "TransferringFrom", "TransferringTo"]
|
101
|
+
elements_with = ["CatalogTransferCompleted", "EffectiveTransferDate", "CatalogReleaseReferenceList", "TerritoryCode", "ExcludedTerritoryCode", "TransferringFrom", "TransferringTo"]
|
102
|
+
expect(el.complex_type.sequences.map{|seq| seq.elements}.flatten.map(&:name)).to eq elements_without
|
103
|
+
expect(el.complex_type.all_elements.map(&:name)).to eq elements_with
|
104
|
+
expect(el.complex_type.sequences[0].choices.map{|ch| ch.elements}.flatten.map(&:name)).to eq elements_with - elements_without
|
105
|
+
end
|
106
|
+
|
107
|
+
it "gives child elements defined within a complex type" do
|
108
|
+
# byebug
|
109
|
+
expect(element.elements.map(&:name)).to eq [
|
110
|
+
"MessageHeader",
|
111
|
+
"UpdateIndicator",
|
112
|
+
"IsBackfill",
|
113
|
+
"CatalogTransfer",
|
114
|
+
"WorkList",
|
115
|
+
"CueSheetList",
|
116
|
+
"ResourceList",
|
117
|
+
"CollectionList",
|
118
|
+
"ReleaseList",
|
119
|
+
"DealList"]
|
120
|
+
end
|
121
|
+
|
122
|
+
it "gives child elements defined in the referenced element" do
|
123
|
+
expect( referencing_reader['Album', 'Tracks'].elements.map(&:name) ).to eq ['Track']
|
124
|
+
expect(referencing_reader['Album', 'Tracks', 'Track'].elements.map(&:name)).to eq [
|
125
|
+
'ISRC',
|
126
|
+
'Artist',
|
127
|
+
'Title',
|
128
|
+
'DiscNumber',
|
129
|
+
'TrackNumber',
|
130
|
+
'Duration',
|
131
|
+
'Label',
|
132
|
+
'Company',
|
133
|
+
'CompanyCountry',
|
134
|
+
'RecordedCountry',
|
135
|
+
'RecordedYear',
|
136
|
+
'ReleaseDate',
|
137
|
+
'Contributors']
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe '#attributes' do
|
142
|
+
it "gives attributes defined in a complexType" do
|
143
|
+
expected = [
|
144
|
+
"MessageSchemaVersionId",
|
145
|
+
"BusinessProfileVersionId",
|
146
|
+
"ReleaseProfileVersionId",
|
147
|
+
"LanguageAndScriptCode"]
|
148
|
+
expect(element.attributes.map(&:name)).to eq expected
|
149
|
+
expect(element.complex_type.attributes.map(&:name)).to eq expected
|
150
|
+
end
|
151
|
+
|
152
|
+
it "gives attributes defined in a simpleContent extension" do
|
153
|
+
expect(element['ResourceList']['SoundRecording']['SoundRecordingDetailsByTerritory']['DisplayArtist']['ArtistRole'].attributes.map(&:name)).to eq ["Namespace", "UserDefinedValue"]
|
154
|
+
end
|
155
|
+
|
156
|
+
it "gives attributes defined in the referenced element" do
|
157
|
+
expect(referencing_reader['Album', 'Tracks', 'Track'].attributes).to eq []
|
158
|
+
expect(referencing_reader['Album', 'Tracks', 'Track', 'Contributors', 'Contributor'].attributes.map(&:name)).to eq ['credited']
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
describe "External type definition" do
|
163
|
+
let(:header){
|
164
|
+
element.elements.first
|
165
|
+
}
|
166
|
+
|
167
|
+
it "gives the type name" do
|
168
|
+
expect(header.type_name).to eq 'MessageHeader'
|
169
|
+
end
|
170
|
+
|
171
|
+
it "gives the type namespace" do
|
172
|
+
expect(header.type_namespace).to eq 'ern'
|
173
|
+
end
|
174
|
+
|
175
|
+
it "gives the type string" do
|
176
|
+
expect(header.type).to eq 'ern:MessageHeader'
|
177
|
+
end
|
178
|
+
|
179
|
+
it "gives the remote complex_type, linked by type" do
|
180
|
+
expect(header.complex_type.name).to eq 'MessageHeader'
|
181
|
+
end
|
182
|
+
|
183
|
+
it "includes child elements defined in external the complex type type definitions" do
|
184
|
+
expected = [
|
185
|
+
"MessageThreadId",
|
186
|
+
"MessageId",
|
187
|
+
"MessageFileName",
|
188
|
+
"MessageSender",
|
189
|
+
"SentOnBehalfOf",
|
190
|
+
"MessageRecipient",
|
191
|
+
"MessageCreatedDateTime",
|
192
|
+
"MessageAuditTrail",
|
193
|
+
"Comment",
|
194
|
+
"MessageControlType"]
|
195
|
+
|
196
|
+
expect(header.elements.map(&:name)).to eq expected
|
197
|
+
expect(header.complex_type.all_elements.map(&:name)).to eq expected
|
198
|
+
end
|
119
199
|
end
|
120
200
|
|
121
201
|
# # this is pretty slow...
|
@@ -152,21 +232,4 @@ describe XsdReader::Element do
|
|
152
232
|
# expect(element.family_tree['DealList']['ReleaseDeal']['Deal']['DealTerms']['RightsClaimPolicy']['Condition']['Unit']).to eq 'type:UnitOfConditionValue'
|
153
233
|
# end
|
154
234
|
# end
|
155
|
-
|
156
|
-
describe '#attributes' do
|
157
|
-
it "gives attributes defined in a complexType" do
|
158
|
-
expected = [
|
159
|
-
"MessageSchemaVersionId",
|
160
|
-
"BusinessProfileVersionId",
|
161
|
-
"ReleaseProfileVersionId",
|
162
|
-
"LanguageAndScriptCode"]
|
163
|
-
expect(element.attributes.map(&:name)).to eq expected
|
164
|
-
expect(element.complex_type.attributes.map(&:name)).to eq expected
|
165
|
-
end
|
166
|
-
|
167
|
-
it "gives attributes defined in a simpleContent extension" do
|
168
|
-
expect(element['ResourceList']['SoundRecording']['SoundRecordingDetailsByTerritory']['DisplayArtist']['ArtistRole'].attributes.map(&:name)).to eq ["Namespace", "UserDefinedValue"]
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
235
|
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
2
|
+
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault='qualified'>
|
3
|
+
<xs:element name='Album'>
|
4
|
+
<xs:complexType>
|
5
|
+
<xs:sequence>
|
6
|
+
<xs:element ref='Source'/>
|
7
|
+
<xs:element ref='Tracks'/>
|
8
|
+
</xs:sequence>
|
9
|
+
</xs:complexType>
|
10
|
+
</xs:element>
|
11
|
+
<xs:element name='Source' type='xs:string'/>
|
12
|
+
<xs:element name='Tracks'>
|
13
|
+
<xs:complexType>
|
14
|
+
<xs:sequence>
|
15
|
+
<xs:element ref='Track'/>
|
16
|
+
</xs:sequence>
|
17
|
+
</xs:complexType>
|
18
|
+
</xs:element>
|
19
|
+
<xs:element name='Track'>
|
20
|
+
<xs:complexType>
|
21
|
+
<xs:sequence>
|
22
|
+
<xs:element ref='ISRC'/>
|
23
|
+
<xs:element ref='Artist'/>
|
24
|
+
<xs:element ref='Title'/>
|
25
|
+
<xs:element ref='DiscNumber'/>
|
26
|
+
<xs:element ref='TrackNumber'/>
|
27
|
+
<xs:element ref='Duration'/>
|
28
|
+
<xs:element ref='Label'/>
|
29
|
+
<xs:element ref='Company'/>
|
30
|
+
<xs:element ref='CompanyCountry'/>
|
31
|
+
<xs:element ref='RecordedCountry'/>
|
32
|
+
<xs:element ref='RecordedYear'/>
|
33
|
+
<xs:element ref='ReleaseDate'/>
|
34
|
+
<xs:element ref='Contributors'/>
|
35
|
+
</xs:sequence>
|
36
|
+
</xs:complexType>
|
37
|
+
</xs:element>
|
38
|
+
<xs:element name='ISRC' type='xs:NCName'/>
|
39
|
+
<xs:element name='DiscNumber' type='xs:integer'/>
|
40
|
+
<xs:element name='TrackNumber' type='xs:integer'/>
|
41
|
+
<xs:element name='Duration' type='xs:integer'/>
|
42
|
+
<xs:element name='RecordedCountry' type='xs:NCName'/>
|
43
|
+
<xs:element name='RecordedYear' type='xs:integer'/>
|
44
|
+
<xs:element name='Contributors'>
|
45
|
+
<xs:complexType>
|
46
|
+
<xs:sequence>
|
47
|
+
<xs:element maxOccurs='unbounded' ref='Contributor'/>
|
48
|
+
</xs:sequence>
|
49
|
+
</xs:complexType>
|
50
|
+
</xs:element>
|
51
|
+
<xs:element name='Contributor'>
|
52
|
+
<xs:complexType>
|
53
|
+
<xs:sequence>
|
54
|
+
<xs:element ref='Name'/>
|
55
|
+
<xs:element ref='Role'/>
|
56
|
+
<xs:element ref='Instrument'/>
|
57
|
+
</xs:sequence>
|
58
|
+
<xs:attribute name="credited" type="xs:boolean" />
|
59
|
+
</xs:complexType>
|
60
|
+
</xs:element>
|
61
|
+
<xs:element name='Name' type='xs:string'/>
|
62
|
+
<xs:element name='Role' type='xs:NCName'/>
|
63
|
+
<xs:element name='Instrument' type='xs:NCName'/>
|
64
|
+
<xs:element name='Title' type='xs:string'/>
|
65
|
+
<xs:element name='Artist' type='xs:string'/>
|
66
|
+
<xs:element name='Label' type='xs:string'/>
|
67
|
+
<xs:element name='Company' type='xs:string'/>
|
68
|
+
<xs:element name='CompanyCountry' type='xs:NCName'/>
|
69
|
+
<xs:element name='ReleaseDate' type='xs:NMTOKEN'/>
|
70
|
+
</xs:schema>
|
data/spec/xsd_reader_spec.rb
CHANGED
@@ -44,7 +44,7 @@ describe XsdReader do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
describe "#all_elements" do
|
47
|
-
it "includes elements from linked complex types
|
47
|
+
it "includes elements from linked complex types from an imported schema" do
|
48
48
|
el = v32['NewReleaseMessage']['CollectionList']['Collection']['Title']
|
49
49
|
expect(el.all_elements.map(&:name)).to eq ['TitleText', 'SubTitle']
|
50
50
|
end
|
@@ -192,4 +192,82 @@ describe XsdReader do
|
|
192
192
|
expect(el.complex_type).to be ct
|
193
193
|
end
|
194
194
|
end
|
195
|
+
|
196
|
+
describe "referenced elements" do
|
197
|
+
let(:reader){
|
198
|
+
XsdReader::XML.new(:xsd_file => File.expand_path('examples/referencing.xsd', File.dirname(__FILE__)))
|
199
|
+
}
|
200
|
+
|
201
|
+
let(:element){
|
202
|
+
reader['Album', 'Tracks', 'Track', 'Contributors', 'Contributor']
|
203
|
+
}
|
204
|
+
|
205
|
+
describe '#referenced_element' do
|
206
|
+
it 'gives the referenced element' do
|
207
|
+
expect(element.referenced_element.class).to eq XsdReader::Element
|
208
|
+
expect(element.referenced_element.name).to eq 'Contributor'
|
209
|
+
expect(element.referenced_element).to_not eq element
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
describe '#elements' do
|
214
|
+
it "gives alements of the referenced element" do
|
215
|
+
expect(element.elements.map(&:name)).to eq ['Name', 'Role', 'Instrument']
|
216
|
+
end
|
217
|
+
end
|
218
|
+
|
219
|
+
describe '#attributes' do
|
220
|
+
it "gives the attributes of the referenced element" do
|
221
|
+
expect(element.attributes.map(&:name)).to eq ['credited']
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
describe '#[]' do
|
226
|
+
it "lets the caller acces elements of the referenced element" do
|
227
|
+
expect(element['Role'].type).to eq 'xs:NCName'
|
228
|
+
end
|
229
|
+
|
230
|
+
it "lets the caller access attributes of the referened element" do
|
231
|
+
expect(element['@credited'].type).to eq 'xs:boolean'
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
describe '#name' do
|
236
|
+
it "gives the name of the referenced element" do
|
237
|
+
expect(element.name).to eq 'Contributor'
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
describe '#type' do
|
242
|
+
it "gives the type of the referenced element" do
|
243
|
+
expect(element.type).to eq nil
|
244
|
+
expect(reader['Album', 'Source'].type).to eq 'xs:string'
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
describe '#complex_type' do
|
249
|
+
it "gives the complex type object of the referenced element" do
|
250
|
+
expect(element.complex_type.sequences.first.elements.map(&:name)).to eq ['Name', 'Role', 'Instrument']
|
251
|
+
end
|
252
|
+
end
|
253
|
+
|
254
|
+
describe '#simple_contents' do
|
255
|
+
it "it includes the referenced element's simple content objects" do
|
256
|
+
skip 'not yet implemented'
|
257
|
+
end
|
258
|
+
end
|
259
|
+
|
260
|
+
describe '#complex_contents' do
|
261
|
+
it "it includes the referenced element's complex content objects" do
|
262
|
+
skip 'not yet implemented'
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
266
|
+
describe '#extensions' do
|
267
|
+
it "it includes the referenced element's extension objects" do
|
268
|
+
skip 'not yet implemented'
|
269
|
+
end
|
270
|
+
end
|
271
|
+
|
272
|
+
end
|
195
273
|
end
|
data/xsd-reader.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xsd-reader
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark van de Korput
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- spec/examples/ddex-v32/iso639a2.xsd
|
104
104
|
- spec/examples/ddex-v36/avs.xsd
|
105
105
|
- spec/examples/ddex-v36/ddex-ern-v36.xsd
|
106
|
+
- spec/examples/referencing.xsd
|
106
107
|
- spec/extension_spec.rb
|
107
108
|
- spec/import_spec.rb
|
108
109
|
- spec/schema_spec.rb
|