xommelier 0.1.25 → 0.1.26
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 +8 -8
- data/lib/xommelier/schemas/atom.xsd +7 -5
- data/lib/xommelier/schemas/dublincore/dc.xsd +6 -6
- data/lib/xommelier/schemas/dublincore/dcterms.xsd +20 -20
- data/lib/xommelier/schemas/syndication/schematron.xsd +1 -1
- data/lib/xommelier/version.rb +1 -1
- data/lib/xommelier/xml/element/namespace.rb +1 -2
- data/spec/functional/xommelier/atom/feed/building_hash_spec.rb +1 -0
- data/spec/functional/xommelier/atom/feed/building_spec.rb +1 -1
- data/spec/functional/xommelier/atom/threading/building_spec.rb +3 -4
- data/spec/functional/xommelier/open_search/description/building_spec.rb +1 -1
- data/spec/functional/xommelier/rss/rss/building_spec.rb +1 -2
- data/spec/support/schema_validatable.rb +12 -0
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
Nzg4Y2NjMTQ3NDQxNzA3YWRmMTEwN2JjZWQ1MWY4ZDJjZGM5NTEwYw==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
NGY5ZTFjNDNkMGNkZjgwMzFmNzdlNzFhZjJiY2JjOGE0ZTc4ODM4ZQ==
|
|
7
7
|
!binary "U0hBNTEy":
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
MGVmMDBkN2I1NzczYjM2YzZlZWNkNzgzYzdjYjBlZDM2OWUxYTk5YTUzNjlm
|
|
10
|
+
ZDI0NzQ0Mjg4NmY5MTQ3MWI5NDA2NjhiMjZhYzIwMWE1ODJhZjA5NDA2MDdh
|
|
11
|
+
NTcxNjA0M2EyODM5YmU2NjRjODg4OTBiMDY2NDM4YmYyYzAyNDE=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
YWE5ZmJlMTc1NWQ0MzAxYTdjOGM0YjRmZWNmMWRjNWVhOTNlODFjNTU3MGZk
|
|
14
|
+
NzhiOTMwYmZiY2Y2ZjM3MWMwOGViODEzYmY0MDZhOTdhMWVhMWVmMTgzY2Jm
|
|
15
|
+
MjQ3NjRlNDc2NWM2ZGYwMDhmMzRhMWY2NmM3M2Q1YzE5NDE5ZDE=
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
2
2
|
<?xml-stylesheet href="xsd.xsl" type="text/xsl"?>
|
|
3
3
|
<xs:schema targetNamespace="http://www.w3.org/2005/Atom" elementFormDefault="qualified"
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
attributeFormDefault="unqualified"
|
|
5
|
+
xmlns:atom="http://www.w3.org/2005/Atom"
|
|
6
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
7
|
+
>
|
|
8
8
|
<xs:annotation>
|
|
9
9
|
<xs:documentation>
|
|
10
10
|
This version of the Atom schema is based on version 1.0 of the format specifications,
|
|
11
11
|
found here http://www.atomenabled.org/developers/syndication/atom-format-spec.php.
|
|
12
12
|
</xs:documentation>
|
|
13
13
|
</xs:annotation>
|
|
14
|
-
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="
|
|
14
|
+
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
|
|
15
|
+
<xs:import namespace="http://purl.org/syndication/thread/1.0" schemaLocation="syndication/thr.xsd" />
|
|
16
|
+
<xs:import namespace="http://purl.org/syndication/history/1.0" schemaLocation="syndication/fh.xsd" />
|
|
15
17
|
<xs:annotation>
|
|
16
18
|
<xs:documentation>
|
|
17
19
|
An Atom document may have two root elements, feed and entry, as defined in section 2.
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
Created 2008-02-11
|
|
14
14
|
|
|
15
|
-
Created by
|
|
15
|
+
Created by
|
|
16
16
|
|
|
17
17
|
Tim Cole (t-cole3@uiuc.edu)
|
|
18
18
|
Tom Habing (thabing@uiuc.edu)
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
This schema declares XML elements for the 15 DC elements from the
|
|
24
24
|
http://purl.org/dc/elements/1.1/ namespace.
|
|
25
25
|
|
|
26
|
-
It defines a complexType SimpleLiteral which permits mixed content
|
|
26
|
+
It defines a complexType SimpleLiteral which permits mixed content
|
|
27
27
|
and makes the xml:lang attribute available. It disallows child elements by
|
|
28
28
|
use of minOcccurs/maxOccurs.
|
|
29
29
|
|
|
30
30
|
However, this complexType does permit the derivation of other complexTypes
|
|
31
31
|
which would permit child elements.
|
|
32
32
|
|
|
33
|
-
All elements are declared as substitutable for the abstract element any,
|
|
33
|
+
All elements are declared as substitutable for the abstract element any,
|
|
34
34
|
which means that the default type for all elements is dc:SimpleLiteral.
|
|
35
35
|
|
|
36
36
|
</xs:documentation>
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
|
42
|
-
schemaLocation="
|
|
42
|
+
schemaLocation="../xml.xsd">
|
|
43
43
|
</xs:import>
|
|
44
44
|
|
|
45
45
|
<xs:complexType name="SimpleLiteral">
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
It permits text content only with optional
|
|
50
50
|
xml:lang attribute.
|
|
51
51
|
Text is allowed because mixed="true", but sub-elements
|
|
52
|
-
are disallowed because minOccurs="0" and maxOccurs="0"
|
|
52
|
+
are disallowed because minOccurs="0" and maxOccurs="0"
|
|
53
53
|
are on the xs:any tag.
|
|
54
54
|
|
|
55
55
|
This complexType allows for restriction or extension permitting
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
<xs:annotation>
|
|
90
90
|
<xs:documentation xml:lang="en">
|
|
91
91
|
This group is included as a convenience for schema authors
|
|
92
|
-
who need to refer to all the elements in the
|
|
92
|
+
who need to refer to all the elements in the
|
|
93
93
|
http://purl.org/dc/elements/1.1/ namespace.
|
|
94
94
|
</xs:documentation>
|
|
95
95
|
</xs:annotation>
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
<xs:documentation xml:lang="en">
|
|
12
12
|
DCterms XML Schema
|
|
13
13
|
XML Schema for http://purl.org/dc/terms/ namespace
|
|
14
|
-
|
|
14
|
+
|
|
15
15
|
Created 2008-02-11
|
|
16
16
|
|
|
17
|
-
Created by
|
|
17
|
+
Created by
|
|
18
18
|
|
|
19
19
|
Tim Cole (t-cole3@uiuc.edu)
|
|
20
20
|
Tom Habing (thabing@uiuc.edu)
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
|
|
25
25
|
This schema declares XML elements for the DC elements and
|
|
26
26
|
DC element refinements from the http://purl.org/dc/terms/ namespace.
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
It reuses the complexType dc:SimpleLiteral, imported from the dc.xsd
|
|
29
29
|
schema, which permits simple element content, and makes the xml:lang
|
|
30
30
|
attribute available.
|
|
@@ -32,38 +32,38 @@
|
|
|
32
32
|
This complexType permits the derivation of other complexTypes
|
|
33
33
|
which would permit child elements.
|
|
34
34
|
|
|
35
|
-
XML elements corresponding to DC elements are declared as substitutable for the abstract element dc:any, and
|
|
36
|
-
XML elements corresponding to DC element refinements are defined as substitutable for the base elements
|
|
35
|
+
XML elements corresponding to DC elements are declared as substitutable for the abstract element dc:any, and
|
|
36
|
+
XML elements corresponding to DC element refinements are defined as substitutable for the base elements
|
|
37
37
|
which they refine.
|
|
38
38
|
|
|
39
|
-
This means that the default type for all XML elements (i.e. corresponding to all DC elements and
|
|
39
|
+
This means that the default type for all XML elements (i.e. corresponding to all DC elements and
|
|
40
40
|
element refinements) is dc:SimpleLiteral.
|
|
41
41
|
|
|
42
42
|
Encoding schemes are defined as complexTypes which are restrictions
|
|
43
|
-
of the dc:SimpleLiteral complexType. These complexTypes restrict
|
|
43
|
+
of the dc:SimpleLiteral complexType. These complexTypes restrict
|
|
44
44
|
values to an appropriates syntax or format using data typing,
|
|
45
45
|
regular expressions, or enumerated lists.
|
|
46
|
-
|
|
47
|
-
In order to specify one of these encodings an xsi:type attribute must
|
|
46
|
+
|
|
47
|
+
In order to specify one of these encodings an xsi:type attribute must
|
|
48
48
|
be used in the instance document.
|
|
49
49
|
|
|
50
|
-
Also, note that one shortcoming of this approach is that any type can be
|
|
50
|
+
Also, note that one shortcoming of this approach is that any type can be
|
|
51
51
|
applied to any of the elements or refinements. There is no convenient way
|
|
52
52
|
to restrict types to specific elements using this approach.
|
|
53
53
|
|
|
54
54
|
Changes in 2008-02-11 version:
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
Add element declarations corresponding to 15 new dcterms URIs, and amend use of substitutionGroups.
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
Add compexType definitions corresponding to ISO639-3, RFC4646.
|
|
59
|
-
|
|
59
|
+
|
|
60
60
|
</xs:documentation>
|
|
61
61
|
|
|
62
62
|
</xs:annotation>
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
|
66
|
-
schemaLocation="
|
|
66
|
+
schemaLocation="../xml.xsd">
|
|
67
67
|
</xs:import>
|
|
68
68
|
|
|
69
69
|
<xs:import namespace="http://purl.org/dc/elements/1.1/"
|
|
@@ -213,7 +213,7 @@
|
|
|
213
213
|
<xs:attribute ref="xml:lang" use="prohibited"/>
|
|
214
214
|
</xs:restriction>
|
|
215
215
|
</xs:simpleContent>
|
|
216
|
-
</xs:complexType>
|
|
216
|
+
</xs:complexType>
|
|
217
217
|
|
|
218
218
|
<xs:complexType name="DCMIType">
|
|
219
219
|
<xs:simpleContent>
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
<xs:attribute ref="xml:lang" use="prohibited"/>
|
|
247
247
|
</xs:restriction>
|
|
248
248
|
</xs:simpleContent>
|
|
249
|
-
</xs:complexType>
|
|
249
|
+
</xs:complexType>
|
|
250
250
|
|
|
251
251
|
<xs:complexType name="ISO639-2">
|
|
252
252
|
<xs:simpleContent>
|
|
@@ -351,9 +351,9 @@
|
|
|
351
351
|
<xs:annotation>
|
|
352
352
|
<xs:documentation xml:lang="en">
|
|
353
353
|
This group is included as a convenience for schema authors
|
|
354
|
-
who need to refer to all the DC elements and element refinements
|
|
355
|
-
in the http://purl.org/dc/elements/1.1/ and
|
|
356
|
-
http://purl.org/dc/terms namespaces.
|
|
354
|
+
who need to refer to all the DC elements and element refinements
|
|
355
|
+
in the http://purl.org/dc/elements/1.1/ and
|
|
356
|
+
http://purl.org/dc/terms namespaces.
|
|
357
357
|
N.B. Refinements available via substitution groups.
|
|
358
358
|
</xs:documentation>
|
|
359
359
|
</xs:annotation>
|
|
@@ -363,7 +363,7 @@
|
|
|
363
363
|
<xs:element ref="dc:any" />
|
|
364
364
|
</xs:choice>
|
|
365
365
|
</xs:sequence>
|
|
366
|
-
</xs:group>
|
|
366
|
+
</xs:group>
|
|
367
367
|
|
|
368
368
|
<xs:complexType name="elementOrRefinementContainer">
|
|
369
369
|
<xs:annotation>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<!-- schemaVersion of 2001/02/15 -->
|
|
3
3
|
<xs:schema targetNamespace="http://www.ascc.net/xml/schematron" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns="http://www.ascc.net/xml/schematron" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="+//IDN sinica.edu.tw//SGML W3C XML Schema for Schematron 1.5//EN">
|
|
4
|
-
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="
|
|
4
|
+
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd">
|
|
5
5
|
<xs:annotation>
|
|
6
6
|
<xs:documentation>
|
|
7
7
|
Get access to the xml: attribute groups for xml:lang
|
data/lib/xommelier/version.rb
CHANGED
|
@@ -64,8 +64,7 @@ module Xommelier
|
|
|
64
64
|
@schema_validation_errors = []
|
|
65
65
|
schema = self.class.schema
|
|
66
66
|
if schema
|
|
67
|
-
document = ensure_xml_document
|
|
68
|
-
document = Nokogiri::XML(to_xml)
|
|
67
|
+
document = Nokogiri::XML(ensure_xml_document.to_s)
|
|
69
68
|
schema.validate(document).each do |error|
|
|
70
69
|
@schema_validation_errors << error
|
|
71
70
|
end
|
|
@@ -24,7 +24,7 @@ describe Xommelier::Atom::Feed do
|
|
|
24
24
|
let(:rng) { Nokogiri::XML::RelaxNG(load_xml_file('atom.rng')) }
|
|
25
25
|
let(:xsd) { Xommelier::Atom.schema }
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
it_behaves_like 'Valid XML Document'
|
|
28
28
|
|
|
29
29
|
its(:to_xml) { should == load_xml_file('simple_feed.atom') }
|
|
30
30
|
it('should conform to RelaxNG schema') { rng.valid?(parsed_xml).should == true }
|
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
|
2
2
|
require 'xommelier/atom/full'
|
|
3
3
|
|
|
4
4
|
describe 'Atom feed building' do
|
|
5
|
-
|
|
5
|
+
subject(:feed) do
|
|
6
6
|
Xommelier::Atom::Feed.new.tap do |feed|
|
|
7
7
|
feed.id = 'urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6'
|
|
8
8
|
feed.title = 'Example Feed'
|
|
@@ -33,8 +33,7 @@ describe 'Atom feed building' do
|
|
|
33
33
|
let(:rng) { Nokogiri::XML::RelaxNG(load_xml_file('atom.rng')) }
|
|
34
34
|
let(:xsd) { Nokogiri::XML::Schema(load_xml_file('atom.xsd')) }
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
it { should == load_xml_file('multi_namespace_feed.atom') }
|
|
36
|
+
its(:to_xml) { should == load_xml_file('multi_namespace_feed.atom') }
|
|
39
37
|
it('should conform to RelaxNG schema') { rng.valid?(parsed_xml).should == true }
|
|
38
|
+
it_behaves_like 'Valid XML Document'
|
|
40
39
|
end
|
|
@@ -30,7 +30,7 @@ describe Xommelier::OpenSearch::Description do
|
|
|
30
30
|
subject(:description) { Xommelier::OpenSearch::Description.new(hash) }
|
|
31
31
|
|
|
32
32
|
its(:to_hash) { should == hash }
|
|
33
|
-
|
|
33
|
+
it_behaves_like 'Valid XML Document'
|
|
34
34
|
its(:to_xml) { should == load_xml_file('opensearch.full') }
|
|
35
35
|
end
|
|
36
36
|
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
shared_examples 'Valid XML Document' do
|
|
2
|
+
it { subject.class.schema.should be_present }
|
|
3
|
+
specify do
|
|
4
|
+
begin
|
|
5
|
+
should be_valid
|
|
6
|
+
rescue RSpec::Expectations::ExpectationNotMetError => e
|
|
7
|
+
puts subject.to_xml
|
|
8
|
+
puts subject.schema_validation_errors
|
|
9
|
+
raise e
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: xommelier
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.26
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alexander Semyonov
|
|
@@ -194,6 +194,7 @@ files:
|
|
|
194
194
|
- spec/namespaced_module.rb
|
|
195
195
|
- spec/spec_helper.rb
|
|
196
196
|
- spec/support/fixtures.rb
|
|
197
|
+
- spec/support/schema_validatable.rb
|
|
197
198
|
- xommelier.gemspec
|
|
198
199
|
homepage: http://github.com/alsemyonov/xommelier
|
|
199
200
|
licenses: []
|
|
@@ -246,3 +247,4 @@ test_files:
|
|
|
246
247
|
- spec/namespaced_module.rb
|
|
247
248
|
- spec/spec_helper.rb
|
|
248
249
|
- spec/support/fixtures.rb
|
|
250
|
+
- spec/support/schema_validatable.rb
|