xsd 2.7.0 → 2.7.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ec3eb825c36a39f706cd6a684d294b443fa7c59a4e9494ef8b1a6e65f226e5e
4
- data.tar.gz: 659b6e95914a0d3a4e04c7b5e17ec54cebbda343b8154b7cd5ff6dd9f2a2ca93
3
+ metadata.gz: ac666b4ba9690ed163376b0232dec21ba29c7098f2362b6ba9b1d5751fa60ca2
4
+ data.tar.gz: 8eedebb55d21670bf6620a892073b8c4af9a269e39be1f20e66a1873749c1c76
5
5
  SHA512:
6
- metadata.gz: 7d5dc6738b374642049d316e7213f2b7c83177182cc8aeed164ff7253d8c3a349faf6c46a8781ad1734fa4daa5337462cee769d72bdd7c69d959e18b3ea8605b
7
- data.tar.gz: e1d929216f6e9239f5ab82ddaf20558b6e562917e6f1c51c392bd988c699f73af0500f9837fd85c8f76afaccb170f88c6a3ddd723b0be7660e596e1010ef7aa1
6
+ metadata.gz: def1638cb816c68f2539611eb5ff2fd5328d729dab3ea530546f54e362f08fb39c06c325f2d734f934231404242adb85f560458c2a1ca8570f482a10fe4e0144
7
+ data.tar.gz: f62492a9cec4f219cb2b966d033b66c7d7a5f1cfdb7c27ac0bef5a5d7fdc3a3aa3265e5ea8c41fba8069433041fc210ceb7521f60304e3a0704a721bf1b0f567
data/CHANGELOG.md CHANGED
@@ -1,6 +1,8 @@
1
- ## [2.7.0] - 2024-04-17
1
+ ## [2.7.2] - 2024-04-17
2
2
 
3
3
  - Return <xs:any> and <xs:anyAttribute> from collect_elements/collect_attributes
4
+ - Make multiple_allowed? available on all definitions with max occurs
5
+ - Don't return duplicated attributes from complex restriction
4
6
 
5
7
  ## [2.6.3] - 2024-04-13
6
8
 
@@ -100,12 +100,6 @@ module XSD
100
100
  !required?
101
101
  end
102
102
 
103
- # Determine if element may occur multiple times
104
- # @return Boolean
105
- def multiple_allowed?
106
- computed_max_occurs == :unbounded || computed_max_occurs > 1
107
- end
108
-
109
103
  # Determine if element has complex content
110
104
  # @return Boolean
111
105
  def complex_content?
@@ -62,8 +62,18 @@ module XSD
62
62
  # @param [Boolean] include_base
63
63
  # @return Array<Element>
64
64
  def collect_elements(include_base = false)
65
- # By default we do not include base element for complex restrictions
66
- super
65
+ # Don't include elements from base by default, that will lead to element duplicates because
66
+ # elements in complex restriction MUST be all listen in restricting type
67
+ super(include_base)
68
+ end
69
+
70
+ # Get all available attributes on the current stack level, optionally including base type attributes
71
+ # @param [Boolean] include_base
72
+ # @return Array<Attribute>
73
+ def collect_attributes(include_base = true)
74
+ result = super(include_base)
75
+ # Filter restricted attributes to avoid duplicates from restricting and restricted type
76
+ result.inject({}) { |hash, item| hash[item.name] = item; hash }.values if include_base
67
77
  end
68
78
  end
69
79
  end
@@ -42,5 +42,11 @@ module XSD
42
42
  min_occurs
43
43
  end
44
44
  end
45
+
46
+ # Determine if element may occur multiple times
47
+ # @return Boolean
48
+ def multiple_allowed?
49
+ computed_max_occurs == :unbounded || computed_max_occurs > 1
50
+ end
45
51
  end
46
52
  end
data/lib/xsd/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module XSD
4
- VERSION = '2.7.0'
4
+ VERSION = '2.7.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 2.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - d.arkhipov