xsd 2.7.1 → 2.7.3

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: c9c91e0e5bbb59fb9f8350cfc63af850aaf6aa7bdb7512c3735d297743838075
4
+ data.tar.gz: 32c0ba7d54f5296ba378bfdc88a2f3f42d7c83c1e7101b9c59fdae1e7d3d72c0
5
5
  SHA512:
6
- metadata.gz: a70c3ac790859ee1d7a649f5ee1ee41b21aacc5fd29d6465a5dd3a113c755856f92f8aafeb937d42e98f57d6f6e3a4e1bb7231a5aeb12e78de8aee66b9cc7cbd
7
- data.tar.gz: 77ae1a10ed5165d71b065814e5466a00f3831ccda312a7a18d4646f2d0d44b7775570ccade57731e75d51f9016c91c4721084f991692f53c6075949051dc5be9
6
+ metadata.gz: 6ae295c6457d02e0ffbb3bd06e8ad69469f779f9d15694694942e7cd6099d07d3865b8ca77674b94d00ed53bb564ffa73a9e7f32744972ea6393c50e88cd2b4e
7
+ data.tar.gz: c5b1a9aca305db447abd51117de1fbaee05da4bc3137b08a9f8bf775d3fe33fd56d1a25871a03bfaad41cd476e575bb09aaa4acc14c6c91c21d0cb8e81d72513
data/CHANGELOG.md CHANGED
@@ -1,7 +1,8 @@
1
- ## [2.7.1] - 2024-04-17
1
+ ## [2.7.3] - 2024-04-21
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
+ include_base ? result.inject({}) { |hash, item| hash[item.name] = item; hash }.values : result
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.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
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.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - d.arkhipov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-17 00:00:00.000000000 Z
11
+ date: 2024-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: builder