xsd 2.7.1 → 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: a204e10bdaaac5744ae8f38bf10e7d83a030a570134739e71a28db641bc955c3
4
- data.tar.gz: e61695c62db5a99877b3d87098a42021df2b416a3ee00dfdeac13a8377ccdea8
3
+ metadata.gz: ac666b4ba9690ed163376b0232dec21ba29c7098f2362b6ba9b1d5751fa60ca2
4
+ data.tar.gz: 8eedebb55d21670bf6620a892073b8c4af9a269e39be1f20e66a1873749c1c76
5
5
  SHA512:
6
- metadata.gz: a70c3ac790859ee1d7a649f5ee1ee41b21aacc5fd29d6465a5dd3a113c755856f92f8aafeb937d42e98f57d6f6e3a4e1bb7231a5aeb12e78de8aee66b9cc7cbd
7
- data.tar.gz: 77ae1a10ed5165d71b065814e5466a00f3831ccda312a7a18d4646f2d0d44b7775570ccade57731e75d51f9016c91c4721084f991692f53c6075949051dc5be9
6
+ metadata.gz: def1638cb816c68f2539611eb5ff2fd5328d729dab3ea530546f54e362f08fb39c06c325f2d734f934231404242adb85f560458c2a1ca8570f482a10fe4e0144
7
+ data.tar.gz: f62492a9cec4f219cb2b966d033b66c7d7a5f1cfdb7c27ac0bef5a5d7fdc3a3aa3265e5ea8c41fba8069433041fc210ceb7521f60304e3a0704a721bf1b0f567
data/CHANGELOG.md CHANGED
@@ -1,7 +1,8 @@
1
- ## [2.7.1] - 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
4
  - Make multiple_allowed? available on all definitions with max occurs
5
+ - Don't return duplicated attributes from complex restriction
5
6
 
6
7
  ## [2.6.3] - 2024-04-13
7
8
 
@@ -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
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.1'
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.1
4
+ version: 2.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - d.arkhipov