aixm 0.3.8 → 0.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +1 -0
  3. data.tar.gz.sig +0 -0
  4. data/CHANGELOG.md +33 -3
  5. data/README.md +166 -56
  6. data/exe/ckmid +14 -0
  7. data/exe/mkmid +14 -0
  8. data/lib/aixm.rb +16 -6
  9. data/lib/aixm/association.rb +369 -0
  10. data/lib/aixm/classes.rb +43 -0
  11. data/lib/aixm/component/fato.rb +45 -53
  12. data/lib/aixm/component/frequency.rb +11 -12
  13. data/lib/aixm/component/geometry.rb +36 -38
  14. data/lib/aixm/component/geometry/arc.rb +2 -2
  15. data/lib/aixm/component/geometry/border.rb +6 -3
  16. data/lib/aixm/component/geometry/circle.rb +8 -2
  17. data/lib/aixm/component/geometry/point.rb +8 -2
  18. data/lib/aixm/component/helipad.rb +30 -38
  19. data/lib/aixm/component/layer.rb +28 -19
  20. data/lib/aixm/component/lighting.rb +12 -13
  21. data/lib/aixm/component/runway.rb +44 -48
  22. data/lib/aixm/{feature → component}/service.rb +37 -36
  23. data/lib/aixm/component/surface.rb +3 -3
  24. data/lib/aixm/component/timetable.rb +2 -2
  25. data/lib/aixm/component/{vertical_limits.rb → vertical_limit.rb} +12 -6
  26. data/lib/aixm/config.rb +2 -1
  27. data/lib/aixm/document.rb +27 -50
  28. data/lib/aixm/executables.rb +85 -0
  29. data/lib/aixm/feature.rb +13 -3
  30. data/lib/aixm/feature/address.rb +12 -13
  31. data/lib/aixm/feature/airport.rb +103 -128
  32. data/lib/aixm/feature/airspace.rb +44 -17
  33. data/lib/aixm/feature/navigational_aid.rb +7 -9
  34. data/lib/aixm/feature/navigational_aid/designated_point.rb +13 -15
  35. data/lib/aixm/feature/navigational_aid/dme.rb +11 -12
  36. data/lib/aixm/feature/navigational_aid/marker.rb +7 -3
  37. data/lib/aixm/feature/navigational_aid/ndb.rb +7 -3
  38. data/lib/aixm/feature/navigational_aid/tacan.rb +7 -3
  39. data/lib/aixm/feature/navigational_aid/vor.rb +23 -15
  40. data/lib/aixm/feature/obstacle.rb +29 -43
  41. data/lib/aixm/feature/obstacle_group.rb +37 -34
  42. data/lib/aixm/feature/organisation.rb +21 -5
  43. data/lib/aixm/feature/unit.rb +36 -46
  44. data/lib/aixm/memoize.rb +89 -0
  45. data/lib/aixm/object.rb +9 -0
  46. data/lib/aixm/payload_hash.rb +114 -0
  47. data/lib/aixm/refinements.rb +29 -76
  48. data/lib/aixm/shortcuts.rb +5 -42
  49. data/lib/aixm/version.rb +1 -1
  50. data/lib/aixm/xy.rb +1 -1
  51. data/schemas/ofmx/0/OFMX-Features.xsd +152 -20
  52. data/schemas/ofmx/0/OFMX-Snapshot.xsd +0 -5
  53. metadata +107 -156
  54. metadata.gz.sig +2 -0
  55. data/.github/workflows/test.yml +0 -26
  56. data/.gitignore +0 -6
  57. data/.ruby-version +0 -1
  58. data/.yardopts +0 -3
  59. data/Guardfile +0 -8
  60. data/aixm.gemspec +0 -35
  61. data/gems.rb +0 -3
  62. data/lib/aixm/component.rb +0 -6
  63. data/rakefile.rb +0 -36
  64. data/spec/factory.rb +0 -559
  65. data/spec/lib/aixm/a_spec.rb +0 -203
  66. data/spec/lib/aixm/component/fato_spec.rb +0 -267
  67. data/spec/lib/aixm/component/frequency_spec.rb +0 -74
  68. data/spec/lib/aixm/component/geometry/arc_spec.rb +0 -73
  69. data/spec/lib/aixm/component/geometry/border_spec.rb +0 -38
  70. data/spec/lib/aixm/component/geometry/circle_spec.rb +0 -68
  71. data/spec/lib/aixm/component/geometry/point_spec.rb +0 -37
  72. data/spec/lib/aixm/component/geometry_spec.rb +0 -316
  73. data/spec/lib/aixm/component/helipad_spec.rb +0 -193
  74. data/spec/lib/aixm/component/layer_spec.rb +0 -135
  75. data/spec/lib/aixm/component/lighting_spec.rb +0 -94
  76. data/spec/lib/aixm/component/runway_spec.rb +0 -479
  77. data/spec/lib/aixm/component/surface_spec.rb +0 -124
  78. data/spec/lib/aixm/component/timetable_spec.rb +0 -47
  79. data/spec/lib/aixm/component/vertical_limits_spec.rb +0 -94
  80. data/spec/lib/aixm/config_spec.rb +0 -41
  81. data/spec/lib/aixm/d_spec.rb +0 -150
  82. data/spec/lib/aixm/document_spec.rb +0 -1884
  83. data/spec/lib/aixm/errors_spec.rb +0 -14
  84. data/spec/lib/aixm/f_spec.rb +0 -85
  85. data/spec/lib/aixm/feature/address_spec.rb +0 -60
  86. data/spec/lib/aixm/feature/airport_spec.rb +0 -776
  87. data/spec/lib/aixm/feature/airspace_spec.rb +0 -394
  88. data/spec/lib/aixm/feature/navigational_aid/designated_point_spec.rb +0 -103
  89. data/spec/lib/aixm/feature/navigational_aid/dme_spec.rb +0 -98
  90. data/spec/lib/aixm/feature/navigational_aid/marker_spec.rb +0 -85
  91. data/spec/lib/aixm/feature/navigational_aid/ndb_spec.rb +0 -95
  92. data/spec/lib/aixm/feature/navigational_aid/tacan_spec.rb +0 -94
  93. data/spec/lib/aixm/feature/navigational_aid/vor_spec.rb +0 -251
  94. data/spec/lib/aixm/feature/navigational_aid_spec.rb +0 -52
  95. data/spec/lib/aixm/feature/obstacle_group_spec.rb +0 -330
  96. data/spec/lib/aixm/feature/obstacle_spec.rb +0 -284
  97. data/spec/lib/aixm/feature/organisation_spec.rb +0 -83
  98. data/spec/lib/aixm/feature/service_spec.rb +0 -59
  99. data/spec/lib/aixm/feature/unit_spec.rb +0 -238
  100. data/spec/lib/aixm/feature_spec.rb +0 -38
  101. data/spec/lib/aixm/p_spec.rb +0 -189
  102. data/spec/lib/aixm/refinements_spec.rb +0 -430
  103. data/spec/lib/aixm/version_spec.rb +0 -7
  104. data/spec/lib/aixm/w_spec.rb +0 -150
  105. data/spec/lib/aixm/xy_spec.rb +0 -180
  106. data/spec/lib/aixm/z_spec.rb +0 -94
  107. data/spec/macros/marking.rb +0 -12
  108. data/spec/macros/organisation.rb +0 -11
  109. data/spec/macros/remarks.rb +0 -12
  110. data/spec/macros/timetable.rb +0 -11
  111. data/spec/macros/xy.rb +0 -11
  112. data/spec/macros/z_qnh.rb +0 -11
  113. data/spec/sounds/failure.mp3 +0 -0
  114. data/spec/sounds/success.mp3 +0 -0
  115. data/spec/spec_helper.rb +0 -62
@@ -0,0 +1,89 @@
1
+ module AIXM
2
+
3
+ # Memoize the return value of a specific method across multiple instances for
4
+ # the duration of a block.
5
+ #
6
+ # The method signature is taken into account, therefore calls of the same
7
+ # method with different positional and/or keyword arguments are cached
8
+ # independently. On the other hand, when calling the method with a block,
9
+ # no memoization is performed at all.
10
+ #
11
+ # @example
12
+ # class Either
13
+ # include AIXM::Memoize
14
+ #
15
+ # def either(argument=nil, keyword: nil, &block)
16
+ # $entropy || argument || keyword || (block.call if block)
17
+ # end
18
+ # memoize :either
19
+ # end
20
+ #
21
+ # a, b, c = Either.new, Either.new, Either.new
22
+ #
23
+ # # No memoization before the block
24
+ # $entropy = nil
25
+ # a.either(1) # => 1
26
+ # b.either(keyword: 2) # => 2
27
+ # c.either { 3 } # => 3
28
+ # $entropy = :not_nil
29
+ # a.either(1) # => :not_nil
30
+ # b.either(keyword: 2) # => :not_nil
31
+ # c.either { 3 } # => :not_nil
32
+ #
33
+ # # Memoization inside the block
34
+ # AIXM::Memoize.method :either do
35
+ # $entropy = nil
36
+ # a.either(1) # => 1
37
+ # b.either(keyword: 2) # => 2
38
+ # c.either { 3 } # => 3
39
+ # $entropy = :not_nil
40
+ # a.either(1) # => 1 (memoized)
41
+ # b.either(keyword: 2) # => 2 (memoized)
42
+ # c.either { 3 } # => :not_nil (cannot be memoized)
43
+ # end
44
+ #
45
+ # # No memoization after the block
46
+ # $entropy = nil
47
+ # a.either(1) # => 1
48
+ # $entropy = :not_nil
49
+ # a.either(1) # => :not_nil
50
+ module Memoize
51
+ module ClassMethods
52
+ def memoize(method)
53
+ unmemoized_method = :"unmemoized_#{method}"
54
+ alias_method unmemoized_method, method
55
+ define_method method do |*args, **kargs, &block|
56
+ if block || !AIXM::Memoize.cache
57
+ send(unmemoized_method, *args, **kargs, &block)
58
+ else
59
+ id = object_id.hash ^ args.hash ^ kargs.hash
60
+ if AIXM::Memoize.cache.has_key?(id)
61
+ AIXM::Memoize.cache[id]
62
+ else
63
+ AIXM::Memoize.cache[id] = send(unmemoized_method, *args, **kargs, &block)
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+
70
+ class << self
71
+ def included(base)
72
+ base.extend(ClassMethods)
73
+ @cache = {}
74
+ end
75
+
76
+ def method(method)
77
+ @method = method
78
+ @cache[@method] = {}
79
+ yield
80
+ ensure
81
+ @method = nil
82
+ end
83
+
84
+ def cache
85
+ (@cache[@method] ||= {}) if @method
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,9 @@
1
+ # This monkey patch is necessary because some classes have to introduce
2
+ # attributes named +class+ (e.g. for airspace classes as described by
3
+ # +AIXM::Component::Layer+) which clash with this core method. Other parts
4
+ # such as +AIXM::Association+ need the original implementation for introspection
5
+ # which is why this alias +Object#__class__+ makes it globally and consistently
6
+ # available again.
7
+ class Object
8
+ alias_method :__class__, :class
9
+ end
@@ -0,0 +1,114 @@
1
+ using AIXM::Refinements
2
+
3
+ module AIXM
4
+
5
+ # Calculate OFMX-compliant payload hashes.
6
+ #
7
+ # @example with XML fragment string
8
+ # xml = '<xml><a></a></xml>'
9
+ # AIXM::PayloadHash.new(xml).to_uuid
10
+ #
11
+ # @example with Nokogiri fragment
12
+ # document = File.open("file.xml") { Nokogiri::XML(_1) }
13
+ # AIXM::PayloadHash.new(document).to_uuid
14
+ #
15
+ # @see https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid
16
+ class PayloadHash
17
+ IGNORED_ATTRIBUTES = %w(mid source).freeze
18
+
19
+ # @param fragment [Nokogiri::XML::DocumentFragment, Nokogiri::XML::Element, String] XML fragment
20
+ def initialize(fragment)
21
+ @fragment = case fragment
22
+ when Nokogiri::XML::DocumentFragment then fragment
23
+ when Nokogiri::XML::Element, String then Nokogiri::XML.fragment(fragment)
24
+ else fail ArgumentError
25
+ end
26
+ end
27
+
28
+ # @return [String] UUIDv3
29
+ def to_uuid
30
+ uuid_for payload_array
31
+ end
32
+
33
+ private
34
+
35
+ def payload_array
36
+ @fragment.css('*').each_with_object([]) do |element, array|
37
+ array << element.name.sub(/\A(\w+Uid)\w+/, '\1') # remove name extension
38
+ element.attributes.sort.each do |name, attribute|
39
+ array.push(name, attribute.value) unless IGNORED_ATTRIBUTES.include? name
40
+ end
41
+ array << element.child.text if element.children.one? && element.child.text?
42
+ array << '' if element.children.none?
43
+ end
44
+ end
45
+
46
+ def uuid_for(array)
47
+ ::Digest::MD5.hexdigest(array.flatten.map(&:to_s).join('|')).unpack("a8a4a4a4a12").join("-")
48
+ end
49
+
50
+ # Insert OFMX-compliant payload hashes as mid attributes into an XML
51
+ # document.
52
+ #
53
+ # Keep in mind: If you pass a Nokogiri::XML::Document, the mid attributes
54
+ # are added into this document. In order to leave the original document
55
+ # untouched, you have to `dup` it.
56
+ #
57
+ # @example with XML string
58
+ # string = '<OFMX-Snapshot><Ahp><AhpUid></AhpUid></Ahp></OFMX-Snapshot>'
59
+ # converter = AIXM::PayloadHash::Mid.new(string)
60
+ # converter.insert_mid.to_xml # returns XML as String
61
+ #
62
+ # @example with Nokogiri document
63
+ # document = File.open("file.ofmx") { Nokogiri::XML(_1) }
64
+ # converter = AIXM::PayloadHash::Mid.new(document)
65
+ # converter.insert_mid.to_xml # returns XML as String
66
+ # document.to_xml # returns XML as String as well
67
+ #
68
+ # @see https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid
69
+ class Mid
70
+
71
+ # @param document [Nokogiri::XML::Document, String] XML document
72
+ def initialize(document)
73
+ @document = case document
74
+ when Nokogiri::XML::Document then document
75
+ when String then Nokogiri::XML(document)
76
+ else fail ArgumentError
77
+ end
78
+ end
79
+
80
+ # Insert or update mid attributes on all *Uid elements
81
+ #
82
+ # @return [self]
83
+ def insert_mid
84
+ uid_elements.each do |element|
85
+ element['mid'] = AIXM::PayloadHash.new(element).to_uuid
86
+ end
87
+ self
88
+ end
89
+
90
+ # Check mid attributes on all *Uid elements
91
+ #
92
+ # @return [Array<String>] array of errors found
93
+ def check_mid
94
+ uid_elements.each_with_object([]) do |element, errors|
95
+ unless element['mid'] == (uuid = AIXM::PayloadHash.new(element).to_uuid)
96
+ errors << "#{element.line}: ERROR: Element '#{element.name}': mid should be #{uuid}"
97
+ end
98
+ end
99
+ end
100
+
101
+ # @return [String] XML document as XML string
102
+ def to_xml
103
+ @document.to_xml
104
+ end
105
+
106
+ private
107
+
108
+ def uid_elements
109
+ @document.xpath('//*[contains(local-name(), "Uid")]')
110
+ end
111
+ end
112
+ end
113
+
114
+ end
@@ -30,22 +30,6 @@ module AIXM
30
30
  end
31
31
  end
32
32
 
33
- # @!method to_uuid
34
- # Builds a UUID version 3 digest from the Array payload.
35
- #
36
- # @example
37
- # ['foo', :bar, nil, [123]].to_uuid
38
- # # => "a68e9aae-81ef-c6f1-d954-2eefe2820c50"
39
- #
40
- # @note This is a refinement for +Array+
41
- # @return [String] UUID version 3
42
- refine Array do
43
- def to_uuid
44
- ::Digest::MD5.hexdigest(flatten.map(&:to_s).join('|')).unpack("a8a4a4a4a12").join("-")
45
- end
46
- end
47
-
48
-
49
33
  # @!method to_dms(padding=3)
50
34
  # Convert DD angle to DMS with the degrees zero padded to +padding+
51
35
  # length.
@@ -138,8 +122,8 @@ module AIXM
138
122
  # Same as +Object#then+ but only applied if the condition is true.
139
123
  #
140
124
  # @example
141
- # "foobar".then_if(false) { |s| s.gsub(/o/, 'i') } # => "foobar"
142
- # "foobar".then_if(true) { |s| s.gsub(/o/, 'i') } # => "fiibar"
125
+ # "foobar".then_if(false) { _1.gsub(/o/, 'i') } # => "foobar"
126
+ # "foobar".then_if(true) { _1.gsub(/o/, 'i') } # => "fiibar"
143
127
  #
144
128
  # @note This is a refinement for +Object+
145
129
  # @return [Object]
@@ -162,83 +146,52 @@ module AIXM
162
146
  end
163
147
  end
164
148
 
165
- # @!method indent(number)
166
- # Indent every line of a string with +number+ spaces.
149
+ # @!method to_class
150
+ # Convert string to class
167
151
  #
168
152
  # @example
169
- # "foo\nbar".indent(2)
170
- # # => " foo\n bar"
153
+ # "AIXM::Feature::NavigationalAid".to_class
154
+ # # => AIXM::Feature::NavigationalAid
171
155
  #
172
156
  # @note This is a refinement for +String+
173
- # @param number [Integer] number of spaces
174
- # @return [String] line indended string
175
157
  refine String do
176
- def indent(number)
177
- whitespace = ' ' * number
178
- gsub(/^/, whitespace)
158
+ def to_class
159
+ Object.const_get(self)
179
160
  end
180
161
  end
181
162
 
182
- # @!method payload_hash(region:, element:)
183
- # Calculate the UUIDv3 hash of an AIXM/OFMX XML string.
163
+ # @!method inflect
164
+ # Apply inflections from the +dry-inflector+ gem
184
165
  #
185
- # A word of warning: This is a minimalistic implementation for the AIXM
186
- # gem and won't work unless the following conditions are met:
187
- # * the XML string must be AIXM/OFMX
188
- # * the XML string must be valid
189
- # * the XML string must be pretty-printed
190
- #
191
- # @example from https://github.com/openflightmaps/ofmx/wiki/Functions
192
- # xml.payload_hash(region: 'LF', element: 'Ser')
193
- # # => "269b1f18-cabe-3c9e-1d71-48a7414a4cb9"
166
+ # @example
167
+ # s = "AIXM::Feature::NavigationalAid"
168
+ # s.inflect(:demodulize, :tableize, :pluralize)
169
+ # # => "navigational_aids"
194
170
  #
171
+ # @see https://www.rubydoc.info/gems/dry-inflector
195
172
  # @note This is a refinement for +String+
196
- # @param region [String] OFMX region (e.g. "LF")
197
- # @param element [String] tag to calculate the payload hash for (default:
198
- # first element in the string)
199
- # @return [String] UUIDv3
200
- # @raise [ArgumentError] if the given element is not found or no element
201
- # at all
202
173
  refine String do
203
- def payload_hash(region:, element: nil)
204
- element = $1 if element.nil? && match(/<([^?].*?)[\s>]/)
205
- fail(ArgumentError, "no element found") unless element
206
- fail(ArgumentError, "element `#{element}' not found") unless match? /<#{element}[\s>]/
207
- gsub(%r((?:mid|source)="[^"]*"), ''). # remove existing mid and source attributes
208
- sub(%r(\A.*?(?=<#{element}))m, ''). # remove everything before first <element>
209
- sub(%r(</#{element}>.*\z)m, ''). # remove everything after and including first </element>
210
- sub(%r(\A(<\w+Uid)\w+), '\1'). # remove Uid name extension
211
- scan(%r(<([\w-]+)([^>]*)>([^<]*))).each_with_object([region.upcase]) do |(e, a, t), m|
212
- m << e << a.scan(%r(([\w-]+)="([^"]*)")).sort.flatten << t
213
- end.
214
- flatten.
215
- keep_if { |s| s.match?(/[^[:space:]]/m) }.
216
- compact.
217
- to_uuid
174
+ def inflect(*inflections)
175
+ inflections.inject(self) do |memo, inflection|
176
+ AIXM.config.inflector.send(inflection, memo)
177
+ end
218
178
  end
219
179
  end
220
180
 
221
- # @!method insert_payload_hash(region:, element:)
222
- # Calculate the UUIDv3 hash of an AIXM/OFMX XML string and insert it into
223
- # the AIXM/OFMX XML string as an mid attribute.
181
+ # @!method indent(number)
182
+ # Indent every line of a string with +number+ spaces.
224
183
  #
225
- # If the region is explicitly set to +nil+ or false, the AIXM/OFMX string
226
- # is returned unchanged.
184
+ # @example
185
+ # "foo\nbar".indent(2)
186
+ # # => " foo\n bar"
227
187
  #
228
188
  # @note This is a refinement for +String+
229
- # @see String#payload_hash
230
- # @param region [String] OFMX region (e.g. "LF")
231
- # @param element [String] tag to calculate the payload hash for (default:
232
- # first element in the string)
233
- # @return [String] AIXM/OFMX XML with UUIDv3 inserted as mid attribute
234
- # @raise [ArgumentError] if the given element is not found or no element
235
- # at all
189
+ # @param number [Integer] number of spaces
190
+ # @return [String] line indended string
236
191
  refine String do
237
- def insert_payload_hash(region:, element: nil)
238
- return self unless region
239
- element = $1 if element.nil? && match(/<([^?].*?)[\s>]/)
240
- hash = payload_hash(region: region, element: element)
241
- sub(/(<#{element})([^>]*?)(\s+mid=".*?")?/, %Q(\\1 mid="#{hash}"\\2))
192
+ def indent(number)
193
+ whitespace = ' ' * number
194
+ gsub(/^/, whitespace)
242
195
  end
243
196
  end
244
197
 
@@ -1,48 +1,11 @@
1
- module AIXM
1
+ using AIXM::Refinements
2
2
 
3
- # List of shorthand names and their corresponding AIXM classes
4
- CLASSES = {
5
- document: Document,
6
- xy: XY,
7
- z: Z,
8
- d: D,
9
- f: F,
10
- a: A,
11
- w: W,
12
- p: P,
13
- address: Feature::Address,
14
- organisation: Feature::Organisation,
15
- unit: Feature::Unit,
16
- service: Feature::Service,
17
- frequency: Component::Frequency,
18
- airport: Feature::Airport,
19
- runway: Component::Runway,
20
- fato: Component::FATO,
21
- helipad: Component::Helipad,
22
- surface: Component::Surface,
23
- lighting: Component::Lighting,
24
- airspace: Feature::Airspace,
25
- layer: Component::Layer,
26
- geometry: Component::Geometry,
27
- vertical_limits: Component::VerticalLimits,
28
- arc: Component::Geometry::Arc,
29
- border: Component::Geometry::Border,
30
- circle: Component::Geometry::Circle,
31
- point: Component::Geometry::Point,
32
- dme: Feature::NavigationalAid::DME,
33
- designated_point: Feature::NavigationalAid::DesignatedPoint,
34
- marker: Feature::NavigationalAid::Marker,
35
- tacan: Feature::NavigationalAid::TACAN,
36
- ndb: Feature::NavigationalAid::NDB,
37
- vor: Feature::NavigationalAid::VOR,
38
- obstacle: Feature::Obstacle,
39
- obstacle_group: Feature::ObstacleGroup,
40
- timetable: Component::Timetable
41
- }.freeze
3
+ module AIXM
42
4
 
43
- CLASSES.each do |element, klass|
5
+ # Shortcut initializers
6
+ CLASSES.each do |element, class_name|
44
7
  define_singleton_method(element) do |*arguments|
45
- klass.new(*arguments)
8
+ class_name.to_class.new(*arguments)
46
9
  end
47
10
  end
48
11
 
@@ -1,3 +1,3 @@
1
1
  module AIXM
2
- VERSION = "0.3.8".freeze
2
+ VERSION = "0.3.10".freeze
3
3
  end
@@ -19,7 +19,7 @@ module AIXM
19
19
  # * +AIXM::SEC+ - characters recognized as DMS second symbols
20
20
  # * +AIXM::DMS_RE+ - regular expression to match DMS coordinate notations
21
21
  #
22
- # @see https://github.com/openflightmaps/ofmx/wiki/Coordinates
22
+ # @see https://gitlab.com/openflightmaps/ofmx/wikis/Coordinates
23
23
  class XY
24
24
  EARTH_RADIUS = 6_371_008.8
25
25
 
@@ -45,6 +45,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45
45
  <xsd:documentation>Optional, could be used to exchange generated UID values</xsd:documentation>
46
46
  </xsd:annotation>
47
47
  </xsd:attribute>
48
+ <xsd:attribute name="region" type="codeRegion">
49
+ <xsd:annotation>
50
+ <xsd:documentation>Region this feature belongs to</xsd:documentation>
51
+ </xsd:annotation>
52
+ </xsd:attribute>
48
53
  <xsd:attribute name="source" type="codeSource">
49
54
  <xsd:annotation>
50
55
  <xsd:documentation>Reference to the source AIP document</xsd:documentation>
@@ -122,6 +127,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
122
127
  </xsd:annotation>
123
128
  </xsd:element>
124
129
  </xsd:sequence>
130
+ <xsd:attribute ref="source"/>
125
131
  </xsd:complexType>
126
132
  <xsd:complexType name="AerodromeHeliportCollocationUidType">
127
133
  <xsd:annotation>
@@ -157,6 +163,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
157
163
  </xsd:annotation>
158
164
  </xsd:element>
159
165
  </xsd:sequence>
166
+ <xsd:attribute ref="source"/>
160
167
  </xsd:complexType>
161
168
  <xsd:complexType name="AerodromeHeliportNavaidUidType">
162
169
  <xsd:annotation>
@@ -214,6 +221,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
214
221
  </xsd:annotation>
215
222
  </xsd:element>
216
223
  </xsd:sequence>
224
+ <xsd:attribute ref="source"/>
217
225
  </xsd:complexType>
218
226
  <xsd:complexType name="AerodromeHeliportObstacleUidType">
219
227
  <xsd:annotation>
@@ -249,6 +257,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
249
257
  </xsd:annotation>
250
258
  </xsd:element>
251
259
  </xsd:sequence>
260
+ <xsd:attribute ref="source"/>
252
261
  </xsd:complexType>
253
262
  <xsd:complexType name="AerodromeHeliportServiceUidType">
254
263
  <xsd:annotation>
@@ -511,6 +520,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
511
520
  </xsd:element>
512
521
  </xsd:sequence>
513
522
  <xsd:attribute ref="mid"/>
523
+ <xsd:attribute ref="region" use="required"/>
514
524
  </xsd:complexType>
515
525
  <xsd:complexType name="AerodromeHeliportUsageType">
516
526
  <xsd:annotation>
@@ -547,6 +557,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
547
557
  </xsd:complexType>
548
558
  </xsd:element>
549
559
  </xsd:sequence>
560
+ <xsd:attribute ref="source"/>
550
561
  </xsd:complexType>
551
562
  <xsd:complexType name="AerodromeHeliportUsageUidType">
552
563
  <xsd:annotation>
@@ -637,6 +648,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
637
648
  </xsd:annotation>
638
649
  </xsd:element>
639
650
  </xsd:sequence>
651
+ <xsd:attribute ref="source"/>
640
652
  </xsd:complexType>
641
653
  <xsd:complexType name="AeronauticalGroundLightUidType">
642
654
  <xsd:annotation>
@@ -705,6 +717,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
705
717
  </xsd:annotation>
706
718
  </xsd:element>
707
719
  </xsd:sequence>
720
+ <xsd:attribute ref="source"/>
708
721
  </xsd:complexType>
709
722
  <xsd:complexType name="AirspaceAssociationUidType">
710
723
  <xsd:annotation>
@@ -761,6 +774,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
761
774
  </xsd:annotation>
762
775
  </xsd:element>
763
776
  </xsd:sequence>
777
+ <xsd:attribute ref="source"/>
764
778
  </xsd:complexType>
765
779
  <xsd:complexType name="AirspaceAssocUidType">
766
780
  <xsd:annotation>
@@ -802,6 +816,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
802
816
  </xsd:annotation>
803
817
  </xsd:element>
804
818
  </xsd:sequence>
819
+ <xsd:attribute ref="source"/>
805
820
  </xsd:complexType>
806
821
  <xsd:complexType name="AirspaceAuthorityUidType">
807
822
  <xsd:annotation>
@@ -870,6 +885,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
870
885
  </xsd:element>
871
886
  </xsd:choice>
872
887
  </xsd:sequence>
888
+ <xsd:attribute ref="source"/>
873
889
  </xsd:complexType>
874
890
  <xsd:complexType name="AirspaceBorderUidType">
875
891
  <xsd:annotation>
@@ -1114,6 +1130,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1114
1130
  </xsd:annotation>
1115
1131
  </xsd:element>
1116
1132
  </xsd:sequence>
1133
+ <xsd:attribute ref="source"/>
1117
1134
  </xsd:complexType>
1118
1135
  <xsd:complexType name="AirspaceCorridorUidType">
1119
1136
  <xsd:annotation>
@@ -1171,6 +1188,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1171
1188
  </xsd:annotation>
1172
1189
  </xsd:element>
1173
1190
  </xsd:sequence>
1191
+ <xsd:attribute ref="source"/>
1174
1192
  </xsd:complexType>
1175
1193
  <xsd:complexType name="AirspaceDerivedGeometryUidType">
1176
1194
  <xsd:annotation>
@@ -1201,6 +1219,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1201
1219
  </xsd:annotation>
1202
1220
  </xsd:element>
1203
1221
  </xsd:sequence>
1222
+ <xsd:attribute ref="source"/>
1204
1223
  </xsd:complexType>
1205
1224
  <xsd:complexType name="AirspaceObstacleUidType">
1206
1225
  <xsd:annotation>
@@ -1236,6 +1255,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1236
1255
  </xsd:annotation>
1237
1256
  </xsd:element>
1238
1257
  </xsd:sequence>
1258
+ <xsd:attribute ref="source"/>
1239
1259
  </xsd:complexType>
1240
1260
  <xsd:complexType name="AirspaceServiceUidType">
1241
1261
  <xsd:annotation>
@@ -1405,6 +1425,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1405
1425
  </xsd:element>
1406
1426
  </xsd:sequence>
1407
1427
  <xsd:attribute ref="mid"/>
1428
+ <xsd:attribute ref="region" use="required"/>
1408
1429
  </xsd:complexType>
1409
1430
  <xsd:complexType name="ApronGeometryPointType">
1410
1431
  <xsd:annotation>
@@ -1495,6 +1516,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1495
1516
  </xsd:annotation>
1496
1517
  </xsd:element>
1497
1518
  </xsd:sequence>
1519
+ <xsd:attribute ref="source"/>
1498
1520
  </xsd:complexType>
1499
1521
  <xsd:complexType name="ApronGeometryUidType">
1500
1522
  <xsd:annotation>
@@ -1550,6 +1572,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1550
1572
  </xsd:annotation>
1551
1573
  </xsd:element>
1552
1574
  </xsd:sequence>
1575
+ <xsd:attribute ref="source"/>
1553
1576
  </xsd:complexType>
1554
1577
  <xsd:complexType name="ApronLightingSystemUidType">
1555
1578
  <xsd:annotation>
@@ -1614,6 +1637,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1614
1637
  </xsd:annotation>
1615
1638
  </xsd:element>
1616
1639
  </xsd:sequence>
1640
+ <xsd:attribute ref="source"/>
1617
1641
  </xsd:complexType>
1618
1642
  <xsd:complexType name="ApronUidType">
1619
1643
  <xsd:annotation>
@@ -1672,6 +1696,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1672
1696
  </xsd:annotation>
1673
1697
  </xsd:element>
1674
1698
  </xsd:sequence>
1699
+ <xsd:attribute ref="source"/>
1675
1700
  </xsd:complexType>
1676
1701
  <xsd:complexType name="CheckpointUidType">
1677
1702
  <xsd:annotation>
@@ -1719,6 +1744,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1719
1744
  </xsd:annotation>
1720
1745
  </xsd:element>
1721
1746
  </xsd:sequence>
1747
+ <xsd:attribute ref="source"/>
1722
1748
  </xsd:complexType>
1723
1749
  <xsd:complexType name="CruisingLevelsColumnUidType">
1724
1750
  <xsd:annotation>
@@ -1769,6 +1795,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1769
1795
  </xsd:annotation>
1770
1796
  </xsd:element>
1771
1797
  </xsd:sequence>
1798
+ <xsd:attribute ref="source"/>
1772
1799
  </xsd:complexType>
1773
1800
  <xsd:complexType name="CruisingLevelsTableUidType">
1774
1801
  <xsd:annotation>
@@ -1880,6 +1907,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1880
1907
  </xsd:element>
1881
1908
  </xsd:sequence>
1882
1909
  <xsd:attribute ref="mid"/>
1910
+ <xsd:attribute ref="region" use="required"/>
1883
1911
  </xsd:complexType>
1884
1912
  <xsd:complexType name="DirectFlightClassType">
1885
1913
  <xsd:annotation>
@@ -1980,6 +2008,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1980
2008
  </xsd:annotation>
1981
2009
  </xsd:element>
1982
2010
  </xsd:sequence>
2011
+ <xsd:attribute ref="source"/>
1983
2012
  </xsd:complexType>
1984
2013
  <xsd:complexType name="DmeLimitationUidType">
1985
2014
  <xsd:annotation>
@@ -2160,6 +2189,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2160
2189
  </xsd:element>
2161
2190
  </xsd:sequence>
2162
2191
  <xsd:attribute ref="mid"/>
2192
+ <xsd:attribute ref="region" use="required"/>
2163
2193
  </xsd:complexType>
2164
2194
  <xsd:complexType name="DmeUsageLimitationType">
2165
2195
  <xsd:annotation>
@@ -2178,6 +2208,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2178
2208
  </xsd:element>
2179
2209
  <xsd:element name="UsageLimit" type="NavaidLimitationType" minOccurs="0" maxOccurs="unbounded"/>
2180
2210
  </xsd:sequence>
2211
+ <xsd:attribute ref="source"/>
2181
2212
  </xsd:complexType>
2182
2213
  <xsd:complexType name="DmeUsageLimitationUidType">
2183
2214
  <xsd:annotation>
@@ -2213,6 +2244,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2213
2244
  </xsd:annotation>
2214
2245
  </xsd:element>
2215
2246
  </xsd:sequence>
2247
+ <xsd:attribute ref="source"/>
2216
2248
  </xsd:complexType>
2217
2249
  <xsd:complexType name="EnrouteRouteUidType">
2218
2250
  <xsd:annotation>
@@ -2293,6 +2325,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2293
2325
  </xsd:annotation>
2294
2326
  </xsd:element>
2295
2327
  </xsd:sequence>
2328
+ <xsd:attribute ref="source"/>
2296
2329
  </xsd:complexType>
2297
2330
  <xsd:complexType name="FatoCentreLinePositionUidType">
2298
2331
  <xsd:annotation>
@@ -2366,6 +2399,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2366
2399
  </xsd:annotation>
2367
2400
  </xsd:element>
2368
2401
  </xsd:sequence>
2402
+ <xsd:attribute ref="source"/>
2369
2403
  </xsd:complexType>
2370
2404
  <xsd:complexType name="FatoDirectionApproachLightingUidType">
2371
2405
  <xsd:annotation>
@@ -2411,6 +2445,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2411
2445
  </xsd:annotation>
2412
2446
  </xsd:element>
2413
2447
  </xsd:sequence>
2448
+ <xsd:attribute ref="source"/>
2414
2449
  </xsd:complexType>
2415
2450
  <xsd:complexType name="FatoDirectionDeclaredDistanceUidType">
2416
2451
  <xsd:annotation>
@@ -2486,6 +2521,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2486
2521
  </xsd:annotation>
2487
2522
  </xsd:element>
2488
2523
  </xsd:sequence>
2524
+ <xsd:attribute ref="source"/>
2489
2525
  </xsd:complexType>
2490
2526
  <xsd:complexType name="FatoDirectionObstacleUidType">
2491
2527
  <xsd:annotation>
@@ -2521,6 +2557,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2521
2557
  </xsd:annotation>
2522
2558
  </xsd:element>
2523
2559
  </xsd:sequence>
2560
+ <xsd:attribute ref="source"/>
2524
2561
  </xsd:complexType>
2525
2562
  <xsd:complexType name="FatoDirectionStarUidType">
2526
2563
  <xsd:annotation>
@@ -2617,6 +2654,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2617
2654
  </xsd:annotation>
2618
2655
  </xsd:element>
2619
2656
  </xsd:sequence>
2657
+ <xsd:attribute ref="source"/>
2620
2658
  </xsd:complexType>
2621
2659
  <xsd:complexType name="FatoDirectionUidType">
2622
2660
  <xsd:annotation>
@@ -2685,6 +2723,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2685
2723
  </xsd:annotation>
2686
2724
  </xsd:element>
2687
2725
  </xsd:sequence>
2726
+ <xsd:attribute ref="source"/>
2688
2727
  </xsd:complexType>
2689
2728
  <xsd:complexType name="FatoLightingSystemUidType">
2690
2729
  <xsd:annotation>
@@ -2769,6 +2808,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2769
2808
  </xsd:annotation>
2770
2809
  </xsd:element>
2771
2810
  </xsd:sequence>
2811
+ <xsd:attribute ref="source"/>
2772
2812
  </xsd:complexType>
2773
2813
  <xsd:complexType name="FatoOldUidType">
2774
2814
  <xsd:annotation>
@@ -2873,6 +2913,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2873
2913
  </xsd:annotation>
2874
2914
  </xsd:element>
2875
2915
  </xsd:sequence>
2916
+ <xsd:attribute ref="source"/>
2876
2917
  </xsd:complexType>
2877
2918
  <xsd:complexType name="FatoProtectionAreaGeometryUidType">
2878
2919
  <xsd:annotation>
@@ -2929,6 +2970,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929
2970
  </xsd:annotation>
2930
2971
  </xsd:element>
2931
2972
  </xsd:sequence>
2973
+ <xsd:attribute ref="source"/>
2932
2974
  </xsd:complexType>
2933
2975
  <xsd:complexType name="FatoProtectionAreaUidType">
2934
2976
  <xsd:annotation>
@@ -3014,6 +3056,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3014
3056
  </xsd:element>
3015
3057
  </xsd:sequence>
3016
3058
  <xsd:attribute ref="mid"/>
3059
+ <xsd:attribute ref="source"/>
3017
3060
  </xsd:complexType>
3018
3061
  <xsd:complexType name="FatoUidType">
3019
3062
  <xsd:annotation>
@@ -3393,6 +3436,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3393
3436
  </xsd:annotation>
3394
3437
  </xsd:element>
3395
3438
  </xsd:sequence>
3439
+ <xsd:attribute ref="source"/>
3396
3440
  </xsd:complexType>
3397
3441
  <xsd:complexType name="FrequencyUidType">
3398
3442
  <xsd:annotation>
@@ -3433,6 +3477,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3433
3477
  </xsd:annotation>
3434
3478
  </xsd:element>
3435
3479
  </xsd:sequence>
3480
+ <xsd:attribute ref="source"/>
3436
3481
  </xsd:complexType>
3437
3482
  <xsd:complexType name="FuelUidType">
3438
3483
  <xsd:annotation>
@@ -3533,6 +3578,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3533
3578
  </xsd:annotation>
3534
3579
  </xsd:element>
3535
3580
  </xsd:sequence>
3581
+ <xsd:attribute ref="source"/>
3536
3582
  </xsd:complexType>
3537
3583
  <xsd:complexType name="GateStandUidType">
3538
3584
  <xsd:annotation>
@@ -3578,6 +3624,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3578
3624
  </xsd:annotation>
3579
3625
  </xsd:element>
3580
3626
  </xsd:sequence>
3627
+ <xsd:attribute ref="source"/>
3581
3628
  </xsd:complexType>
3582
3629
  <xsd:complexType name="GeographicalBorderUidType">
3583
3630
  <xsd:annotation>
@@ -3661,6 +3708,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3661
3708
  </xsd:annotation>
3662
3709
  </xsd:element>
3663
3710
  </xsd:sequence>
3711
+ <xsd:attribute ref="source"/>
3664
3712
  </xsd:complexType>
3665
3713
  <xsd:complexType name="GroundServiceAddressUidType">
3666
3714
  <xsd:annotation>
@@ -3721,6 +3769,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3721
3769
  </xsd:annotation>
3722
3770
  </xsd:element>
3723
3771
  </xsd:sequence>
3772
+ <xsd:attribute ref="source"/>
3724
3773
  </xsd:complexType>
3725
3774
  <xsd:complexType name="GroundServiceUidType">
3726
3775
  <xsd:annotation>
@@ -3756,6 +3805,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3756
3805
  </xsd:annotation>
3757
3806
  </xsd:element>
3758
3807
  </xsd:sequence>
3808
+ <xsd:attribute ref="source"/>
3759
3809
  </xsd:complexType>
3760
3810
  <xsd:complexType name="HoldingProcedureServiceUidType">
3761
3811
  <xsd:annotation>
@@ -3801,6 +3851,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3801
3851
  </xsd:annotation>
3802
3852
  </xsd:element>
3803
3853
  </xsd:sequence>
3854
+ <xsd:attribute ref="source"/>
3804
3855
  </xsd:complexType>
3805
3856
  <xsd:complexType name="HoldingProcedureUidType">
3806
3857
  <xsd:annotation>
@@ -4122,6 +4173,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4122
4173
  </xsd:annotation>
4123
4174
  </xsd:element>
4124
4175
  </xsd:sequence>
4176
+ <xsd:attribute ref="source"/>
4125
4177
  </xsd:complexType>
4126
4178
  <xsd:complexType name="InstrumentApproachServiceUidType">
4127
4179
  <xsd:annotation>
@@ -4209,6 +4261,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4209
4261
  </xsd:annotation>
4210
4262
  </xsd:element>
4211
4263
  </xsd:sequence>
4264
+ <xsd:attribute ref="source"/>
4212
4265
  </xsd:complexType>
4213
4266
  <xsd:complexType name="InstrumentApproachUidType">
4214
4267
  <xsd:annotation>
@@ -4259,6 +4312,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4259
4312
  </xsd:annotation>
4260
4313
  </xsd:element>
4261
4314
  </xsd:sequence>
4315
+ <xsd:attribute ref="source"/>
4262
4316
  </xsd:complexType>
4263
4317
  <xsd:complexType name="InstrumentApproachUsageConditionUidType">
4264
4318
  <xsd:annotation>
@@ -4491,6 +4545,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4491
4545
  </xsd:element>
4492
4546
  </xsd:sequence>
4493
4547
  <xsd:attribute ref="mid"/>
4548
+ <xsd:attribute ref="region" use="required"/>
4494
4549
  </xsd:complexType>
4495
4550
  <xsd:complexType name="MlsAzimuthType">
4496
4551
  <xsd:annotation>
@@ -4744,6 +4799,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4744
4799
  </xsd:annotation>
4745
4800
  </xsd:element>
4746
4801
  </xsd:sequence>
4802
+ <xsd:attribute ref="source"/>
4747
4803
  </xsd:complexType>
4748
4804
  <xsd:complexType name="MlsUidType">
4749
4805
  <xsd:annotation>
@@ -4796,6 +4852,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4796
4852
  </xsd:annotation>
4797
4853
  </xsd:element>
4798
4854
  </xsd:sequence>
4855
+ <xsd:attribute ref="source"/>
4799
4856
  </xsd:complexType>
4800
4857
  <xsd:complexType name="MsaGroupUidType">
4801
4858
  <xsd:annotation>
@@ -4880,6 +4937,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4880
4937
  </xsd:annotation>
4881
4938
  </xsd:element>
4882
4939
  </xsd:sequence>
4940
+ <xsd:attribute ref="source"/>
4883
4941
  </xsd:complexType>
4884
4942
  <xsd:complexType name="NavaidAngularReferenceUidType">
4885
4943
  <xsd:annotation>
@@ -4946,6 +5004,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4946
5004
  </xsd:annotation>
4947
5005
  </xsd:element>
4948
5006
  </xsd:sequence>
5007
+ <xsd:attribute ref="source"/>
4949
5008
  </xsd:complexType>
4950
5009
  <xsd:complexType name="NavaidDistanceIndicationUidType">
4951
5010
  <xsd:annotation>
@@ -5087,6 +5146,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5087
5146
  </xsd:annotation>
5088
5147
  </xsd:element>
5089
5148
  </xsd:sequence>
5149
+ <xsd:attribute ref="source"/>
5090
5150
  </xsd:complexType>
5091
5151
  <xsd:complexType name="NdbLimitationUidType">
5092
5152
  <xsd:annotation>
@@ -5262,6 +5322,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5262
5322
  </xsd:element>
5263
5323
  </xsd:sequence>
5264
5324
  <xsd:attribute ref="mid"/>
5325
+ <xsd:attribute ref="region" use="required"/>
5265
5326
  </xsd:complexType>
5266
5327
  <xsd:complexType name="NdbUsageLimitationType">
5267
5328
  <xsd:annotation>
@@ -5280,6 +5341,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5280
5341
  </xsd:element>
5281
5342
  <xsd:element name="UsageLimit" type="NavaidLimitationType" minOccurs="0" maxOccurs="unbounded"/>
5282
5343
  </xsd:sequence>
5344
+ <xsd:attribute ref="source"/>
5283
5345
  </xsd:complexType>
5284
5346
  <xsd:complexType name="NdbUsageLimitationUidType">
5285
5347
  <xsd:annotation>
@@ -5315,6 +5377,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5315
5377
  </xsd:annotation>
5316
5378
  </xsd:element>
5317
5379
  </xsd:sequence>
5380
+ <xsd:attribute ref="source"/>
5318
5381
  </xsd:complexType>
5319
5382
  <xsd:complexType name="NitrogenUidType">
5320
5383
  <xsd:annotation>
@@ -5387,6 +5450,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5387
5450
  <xsd:documentation>a version of Obstacle group</xsd:documentation>
5388
5451
  </xsd:annotation>
5389
5452
  </xsd:element>
5453
+ <xsd:element name="txtName" type="txtName">
5454
+ <xsd:annotation>
5455
+ <xsd:documentation>Name</xsd:documentation>
5456
+ </xsd:annotation>
5457
+ </xsd:element>
5390
5458
  <xsd:element name="codeDatum" type="codeDatum">
5391
5459
  <xsd:annotation>
5392
5460
  <xsd:documentation>Datum</xsd:documentation>
@@ -5425,11 +5493,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5425
5493
  <xsd:documentation>Obstacle group - UID</xsd:documentation>
5426
5494
  </xsd:annotation>
5427
5495
  <xsd:sequence>
5428
- <xsd:element name="txtName" type="txtName">
5429
- <xsd:annotation>
5430
- <xsd:documentation>Name</xsd:documentation>
5431
- </xsd:annotation>
5432
- </xsd:element>
5433
5496
  <xsd:element name="geoLat" type="geoLat">
5434
5497
  <xsd:annotation>
5435
5498
  <xsd:documentation>Group reference point latitude</xsd:documentation>
@@ -5442,6 +5505,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5442
5505
  </xsd:element>
5443
5506
  </xsd:sequence>
5444
5507
  <xsd:attribute ref="mid"/>
5508
+ <xsd:attribute ref="region" use="required"/>
5445
5509
  </xsd:complexType>
5446
5510
  <xsd:complexType name="ObstacleType">
5447
5511
  <xsd:annotation>
@@ -5453,6 +5517,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5453
5517
  <xsd:documentation>a version of Obstacle</xsd:documentation>
5454
5518
  </xsd:annotation>
5455
5519
  </xsd:element>
5520
+ <xsd:element name="OgrUid" type="ObstacleGroupUidType" minOccurs="0">
5521
+ <xsd:annotation>
5522
+ <xsd:documentation>a version of Obstacle group</xsd:documentation>
5523
+ </xsd:annotation>
5524
+ </xsd:element>
5456
5525
  <xsd:element name="txtName" type="txtName" minOccurs="0">
5457
5526
  <xsd:annotation>
5458
5527
  <xsd:documentation>Name</xsd:documentation>
@@ -5468,11 +5537,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5468
5537
  <xsd:documentation>Type details</xsd:documentation>
5469
5538
  </xsd:annotation>
5470
5539
  </xsd:element>
5471
- <xsd:element name="codeGroup" type="codeYesNo" minOccurs="0">
5472
- <xsd:annotation>
5473
- <xsd:documentation>Group of obstacles</xsd:documentation>
5474
- </xsd:annotation>
5475
- </xsd:element>
5476
5540
  <xsd:element name="codeLgt" type="codeYesNo" minOccurs="0">
5477
5541
  <xsd:annotation>
5478
5542
  <xsd:documentation>Lighted</xsd:documentation>
@@ -5498,11 +5562,31 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5498
5562
  <xsd:documentation>Datum</xsd:documentation>
5499
5563
  </xsd:annotation>
5500
5564
  </xsd:element>
5565
+ <xsd:element name="valGeoAccuracy" type="valDistHorz" minOccurs="0">
5566
+ <xsd:annotation>
5567
+ <xsd:documentation>Geographical accuracy</xsd:documentation>
5568
+ </xsd:annotation>
5569
+ </xsd:element>
5570
+ <xsd:element name="uomGeoAccuracy" type="uomDistHorz" minOccurs="0">
5571
+ <xsd:annotation>
5572
+ <xsd:documentation>Unit of measurement [geographical accuracy]</xsd:documentation>
5573
+ </xsd:annotation>
5574
+ </xsd:element>
5501
5575
  <xsd:element name="valElev" type="valDistVer">
5502
5576
  <xsd:annotation>
5503
5577
  <xsd:documentation>Elevation</xsd:documentation>
5504
5578
  </xsd:annotation>
5505
5579
  </xsd:element>
5580
+ <xsd:element name="valElevAccuracy" type="valDistVer" minOccurs="0">
5581
+ <xsd:annotation>
5582
+ <xsd:documentation>Elevation accuracy</xsd:documentation>
5583
+ </xsd:annotation>
5584
+ </xsd:element>
5585
+ <xsd:element name="uomElevAccuracy" type="uomElev" minOccurs="0">
5586
+ <xsd:annotation>
5587
+ <xsd:documentation>Unit of measurement [elevation accuracy]</xsd:documentation>
5588
+ </xsd:annotation>
5589
+ </xsd:element>
5506
5590
  <xsd:element name="valHgt" type="valDistVer" minOccurs="0">
5507
5591
  <xsd:annotation>
5508
5592
  <xsd:documentation>Height</xsd:documentation>
@@ -5569,17 +5653,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5569
5653
  </xsd:annotation>
5570
5654
  </xsd:element>
5571
5655
  </xsd:sequence>
5656
+ <xsd:attribute ref="source"/>
5572
5657
  </xsd:complexType>
5573
5658
  <xsd:complexType name="ObstacleUidType">
5574
5659
  <xsd:annotation>
5575
5660
  <xsd:documentation>Obstacle - UID</xsd:documentation>
5576
5661
  </xsd:annotation>
5577
5662
  <xsd:sequence>
5578
- <xsd:element name="OgrUid" type="ObstacleGroupUidType">
5579
- <xsd:annotation>
5580
- <xsd:documentation>a version of Obstacle group</xsd:documentation>
5581
- </xsd:annotation>
5582
- </xsd:element>
5583
5663
  <xsd:element name="geoLat" type="geoLat">
5584
5664
  <xsd:annotation>
5585
5665
  <xsd:documentation>Latitude</xsd:documentation>
@@ -5592,6 +5672,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5592
5672
  </xsd:element>
5593
5673
  </xsd:sequence>
5594
5674
  <xsd:attribute ref="mid"/>
5675
+ <xsd:attribute ref="region" use="required"/>
5595
5676
  </xsd:complexType>
5596
5677
  <xsd:complexType name="OilType">
5597
5678
  <xsd:annotation>
@@ -5614,6 +5695,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5614
5695
  </xsd:annotation>
5615
5696
  </xsd:element>
5616
5697
  </xsd:sequence>
5698
+ <xsd:attribute ref="source"/>
5617
5699
  </xsd:complexType>
5618
5700
  <xsd:complexType name="OilUidType">
5619
5701
  <xsd:annotation>
@@ -5654,6 +5736,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5654
5736
  </xsd:annotation>
5655
5737
  </xsd:element>
5656
5738
  </xsd:sequence>
5739
+ <xsd:attribute ref="source"/>
5657
5740
  </xsd:complexType>
5658
5741
  <xsd:complexType name="OrganisationAuthorityAddressUidType">
5659
5742
  <xsd:annotation>
@@ -5694,6 +5777,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5694
5777
  </xsd:annotation>
5695
5778
  </xsd:element>
5696
5779
  </xsd:sequence>
5780
+ <xsd:attribute ref="source"/>
5697
5781
  </xsd:complexType>
5698
5782
  <xsd:complexType name="OrganisationAuthorityAssociationUidType">
5699
5783
  <xsd:annotation>
@@ -5758,6 +5842,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5758
5842
  </xsd:element>
5759
5843
  </xsd:sequence>
5760
5844
  <xsd:attribute ref="mid"/>
5845
+ <xsd:attribute ref="region" use="required"/>
5761
5846
  </xsd:complexType>
5762
5847
  <xsd:complexType name="OxygenType">
5763
5848
  <xsd:annotation>
@@ -5775,6 +5860,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5775
5860
  </xsd:annotation>
5776
5861
  </xsd:element>
5777
5862
  </xsd:sequence>
5863
+ <xsd:attribute ref="source"/>
5778
5864
  </xsd:complexType>
5779
5865
  <xsd:complexType name="OxygenUidType">
5780
5866
  <xsd:annotation>
@@ -5815,6 +5901,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
5815
5901
  </xsd:annotation>
5816
5902
  </xsd:element>
5817
5903
  </xsd:sequence>
5904
+ <xsd:attribute ref="source"/>
5818
5905
  </xsd:complexType>
5819
5906
  <xsd:complexType name="PassengerFacilityUidType">
5820
5907
  <xsd:annotation>
@@ -6108,6 +6195,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6108
6195
  </xsd:annotation>
6109
6196
  </xsd:element>
6110
6197
  </xsd:sequence>
6198
+ <xsd:attribute ref="source"/>
6111
6199
  </xsd:complexType>
6112
6200
  <xsd:complexType name="RouteSegmentServiceUidType">
6113
6201
  <xsd:annotation>
@@ -6308,6 +6396,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6308
6396
  </xsd:annotation>
6309
6397
  </xsd:element>
6310
6398
  </xsd:sequence>
6399
+ <xsd:attribute ref="source"/>
6311
6400
  </xsd:complexType>
6312
6401
  <xsd:complexType name="RouteSegmentUidType">
6313
6402
  <xsd:annotation>
@@ -6355,6 +6444,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6355
6444
  </xsd:annotation>
6356
6445
  </xsd:element>
6357
6446
  </xsd:sequence>
6447
+ <xsd:attribute ref="source"/>
6358
6448
  </xsd:complexType>
6359
6449
  <xsd:complexType name="RouteSegmentUsageUidType">
6360
6450
  <xsd:annotation>
@@ -6445,6 +6535,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6445
6535
  </xsd:annotation>
6446
6536
  </xsd:element>
6447
6537
  </xsd:sequence>
6538
+ <xsd:attribute ref="source"/>
6448
6539
  </xsd:complexType>
6449
6540
  <xsd:complexType name="RunwayCentreLinePositionUidType">
6450
6541
  <xsd:annotation>
@@ -6510,6 +6601,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6510
6601
  </xsd:annotation>
6511
6602
  </xsd:element>
6512
6603
  </xsd:sequence>
6604
+ <xsd:attribute ref="source"/>
6513
6605
  </xsd:complexType>
6514
6606
  <xsd:complexType name="RunwayDirectionApproachLightingSystemUidType">
6515
6607
  <xsd:annotation>
@@ -6555,6 +6647,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6555
6647
  </xsd:annotation>
6556
6648
  </xsd:element>
6557
6649
  </xsd:sequence>
6650
+ <xsd:attribute ref="source"/>
6558
6651
  </xsd:complexType>
6559
6652
  <xsd:complexType name="RunwayDirectionDeclaredDistanceUidType">
6560
6653
  <xsd:annotation>
@@ -6625,6 +6718,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6625
6718
  </xsd:annotation>
6626
6719
  </xsd:element>
6627
6720
  </xsd:sequence>
6721
+ <xsd:attribute ref="source"/>
6628
6722
  </xsd:complexType>
6629
6723
  <xsd:complexType name="RunwayDirectionLightingSystemUidType">
6630
6724
  <xsd:annotation>
@@ -6690,6 +6784,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6690
6784
  </xsd:annotation>
6691
6785
  </xsd:element>
6692
6786
  </xsd:sequence>
6787
+ <xsd:attribute ref="source"/>
6693
6788
  </xsd:complexType>
6694
6789
  <xsd:complexType name="RunwayDirectionObstacleUidType">
6695
6790
  <xsd:annotation>
@@ -6725,6 +6820,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6725
6820
  </xsd:annotation>
6726
6821
  </xsd:element>
6727
6822
  </xsd:sequence>
6823
+ <xsd:attribute ref="source"/>
6728
6824
  </xsd:complexType>
6729
6825
  <xsd:complexType name="RunwayDirectionStarUidType">
6730
6826
  <xsd:annotation>
@@ -6856,6 +6952,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6856
6952
  </xsd:annotation>
6857
6953
  </xsd:element>
6858
6954
  </xsd:sequence>
6955
+ <xsd:attribute ref="source"/>
6859
6956
  </xsd:complexType>
6860
6957
  <xsd:complexType name="RunwayDirectionUidType">
6861
6958
  <xsd:annotation>
@@ -6964,6 +7061,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6964
7061
  </xsd:annotation>
6965
7062
  </xsd:element>
6966
7063
  </xsd:sequence>
7064
+ <xsd:attribute ref="source"/>
6967
7065
  </xsd:complexType>
6968
7066
  <xsd:complexType name="RunwayProtectionAreaGeometryUidType">
6969
7067
  <xsd:annotation>
@@ -7020,6 +7118,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7020
7118
  </xsd:annotation>
7021
7119
  </xsd:element>
7022
7120
  </xsd:sequence>
7121
+ <xsd:attribute ref="source"/>
7023
7122
  </xsd:complexType>
7024
7123
  <xsd:complexType name="RunwayProtectionAreaUidType">
7025
7124
  <xsd:annotation>
@@ -7123,6 +7222,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7123
7222
  </xsd:annotation>
7124
7223
  </xsd:element>
7125
7224
  </xsd:sequence>
7225
+ <xsd:attribute ref="source"/>
7126
7226
  </xsd:complexType>
7127
7227
  <xsd:complexType name="RunwayUidType">
7128
7228
  <xsd:annotation>
@@ -7269,6 +7369,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7269
7369
  </xsd:annotation>
7270
7370
  </xsd:element>
7271
7371
  </xsd:sequence>
7372
+ <xsd:attribute ref="source"/>
7272
7373
  </xsd:complexType>
7273
7374
  <xsd:complexType name="SidServiceUidType">
7274
7375
  <xsd:annotation>
@@ -7346,6 +7447,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7346
7447
  </xsd:annotation>
7347
7448
  </xsd:element>
7348
7449
  </xsd:sequence>
7450
+ <xsd:attribute ref="source"/>
7349
7451
  </xsd:complexType>
7350
7452
  <xsd:complexType name="SidUidType">
7351
7453
  <xsd:annotation>
@@ -7396,6 +7498,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7396
7498
  </xsd:annotation>
7397
7499
  </xsd:element>
7398
7500
  </xsd:sequence>
7501
+ <xsd:attribute ref="source"/>
7399
7502
  </xsd:complexType>
7400
7503
  <xsd:complexType name="SidUsageUidType">
7401
7504
  <xsd:annotation>
@@ -7436,6 +7539,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7436
7539
  </xsd:annotation>
7437
7540
  </xsd:element>
7438
7541
  </xsd:sequence>
7542
+ <xsd:attribute ref="source"/>
7439
7543
  </xsd:complexType>
7440
7544
  <xsd:complexType name="SignificantPointAirspaceUidType">
7441
7545
  <xsd:annotation>
@@ -7478,6 +7582,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7478
7582
  </xsd:annotation>
7479
7583
  </xsd:element>
7480
7584
  </xsd:sequence>
7585
+ <xsd:attribute ref="source"/>
7481
7586
  </xsd:complexType>
7482
7587
  <xsd:complexType name="SpecialDateUidType">
7483
7588
  <xsd:annotation>
@@ -7608,6 +7713,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7608
7713
  </xsd:annotation>
7609
7714
  </xsd:element>
7610
7715
  </xsd:sequence>
7716
+ <xsd:attribute ref="source"/>
7611
7717
  </xsd:complexType>
7612
7718
  <xsd:complexType name="SpecialNavigationSystemStationUidType">
7613
7719
  <xsd:annotation>
@@ -7653,6 +7759,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7653
7759
  </xsd:annotation>
7654
7760
  </xsd:element>
7655
7761
  </xsd:sequence>
7762
+ <xsd:attribute ref="source"/>
7656
7763
  </xsd:complexType>
7657
7764
  <xsd:complexType name="SpecialNavigationSystemUidType">
7658
7765
  <xsd:annotation>
@@ -7701,6 +7808,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7701
7808
  </xsd:annotation>
7702
7809
  </xsd:element>
7703
7810
  </xsd:sequence>
7811
+ <xsd:attribute ref="source"/>
7704
7812
  </xsd:complexType>
7705
7813
  <xsd:complexType name="StarServiceUidType">
7706
7814
  <xsd:annotation>
@@ -7766,6 +7874,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7766
7874
  </xsd:annotation>
7767
7875
  </xsd:element>
7768
7876
  </xsd:sequence>
7877
+ <xsd:attribute ref="source"/>
7769
7878
  </xsd:complexType>
7770
7879
  <xsd:complexType name="StarUidType">
7771
7880
  <xsd:annotation>
@@ -7816,6 +7925,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7816
7925
  </xsd:annotation>
7817
7926
  </xsd:element>
7818
7927
  </xsd:sequence>
7928
+ <xsd:attribute ref="source"/>
7819
7929
  </xsd:complexType>
7820
7930
  <xsd:complexType name="StarUsageUidType">
7821
7931
  <xsd:annotation>
@@ -7894,6 +8004,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7894
8004
  </xsd:annotation>
7895
8005
  </xsd:element>
7896
8006
  </xsd:sequence>
8007
+ <xsd:attribute ref="source"/>
7897
8008
  </xsd:complexType>
7898
8009
  <xsd:complexType name="StopwayUidType">
7899
8010
  <xsd:annotation>
@@ -7965,6 +8076,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7965
8076
  </xsd:annotation>
7966
8077
  </xsd:element>
7967
8078
  </xsd:sequence>
8079
+ <xsd:attribute ref="source"/>
7968
8080
  </xsd:complexType>
7969
8081
  <xsd:complexType name="TacanLimitationUidType">
7970
8082
  <xsd:annotation>
@@ -8150,6 +8262,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8150
8262
  </xsd:element>
8151
8263
  </xsd:sequence>
8152
8264
  <xsd:attribute ref="mid"/>
8265
+ <xsd:attribute ref="region" use="required"/>
8153
8266
  </xsd:complexType>
8154
8267
  <xsd:complexType name="TacanUsageLimitationType">
8155
8268
  <xsd:annotation>
@@ -8168,6 +8281,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8168
8281
  </xsd:element>
8169
8282
  <xsd:element name="UsageLimit" type="NavaidLimitationType" minOccurs="0" maxOccurs="unbounded"/>
8170
8283
  </xsd:sequence>
8284
+ <xsd:attribute ref="source"/>
8171
8285
  </xsd:complexType>
8172
8286
  <xsd:complexType name="TacanUsageLimitationUidType">
8173
8287
  <xsd:annotation>
@@ -8258,6 +8372,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8258
8372
  </xsd:annotation>
8259
8373
  </xsd:element>
8260
8374
  </xsd:sequence>
8375
+ <xsd:attribute ref="source"/>
8261
8376
  </xsd:complexType>
8262
8377
  <xsd:complexType name="TaxiwayCentreLinePositionUidType">
8263
8378
  <xsd:annotation>
@@ -8308,6 +8423,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8308
8423
  </xsd:annotation>
8309
8424
  </xsd:element>
8310
8425
  </xsd:sequence>
8426
+ <xsd:attribute ref="source"/>
8311
8427
  </xsd:complexType>
8312
8428
  <xsd:complexType name="TaxiwayHoldingPositionUidType">
8313
8429
  <xsd:annotation>
@@ -8363,6 +8479,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8363
8479
  </xsd:annotation>
8364
8480
  </xsd:element>
8365
8481
  </xsd:sequence>
8482
+ <xsd:attribute ref="source"/>
8366
8483
  </xsd:complexType>
8367
8484
  <xsd:complexType name="TaxiwayLightingSystemUidType">
8368
8485
  <xsd:annotation>
@@ -8436,6 +8553,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8436
8553
  </xsd:annotation>
8437
8554
  </xsd:element>
8438
8555
  </xsd:sequence>
8556
+ <xsd:attribute ref="source"/>
8439
8557
  </xsd:complexType>
8440
8558
  <xsd:complexType name="TaxiwayUidType">
8441
8559
  <xsd:annotation>
@@ -8733,6 +8851,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8733
8851
  </xsd:annotation>
8734
8852
  </xsd:element>
8735
8853
  </xsd:sequence>
8854
+ <xsd:attribute ref="source"/>
8736
8855
  </xsd:complexType>
8737
8856
  <xsd:complexType name="TlofGeometryUidType">
8738
8857
  <xsd:annotation>
@@ -8788,6 +8907,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8788
8907
  </xsd:annotation>
8789
8908
  </xsd:element>
8790
8909
  </xsd:sequence>
8910
+ <xsd:attribute ref="source"/>
8791
8911
  </xsd:complexType>
8792
8912
  <xsd:complexType name="TlofLightingSystemUidType">
8793
8913
  <xsd:annotation>
@@ -8896,6 +9016,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8896
9016
  </xsd:annotation>
8897
9017
  </xsd:element>
8898
9018
  </xsd:sequence>
9019
+ <xsd:attribute ref="source"/>
8899
9020
  </xsd:complexType>
8900
9021
  <xsd:complexType name="TlofSafeAreaGeometryUidType">
8901
9022
  <xsd:annotation>
@@ -8952,6 +9073,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8952
9073
  </xsd:annotation>
8953
9074
  </xsd:element>
8954
9075
  </xsd:sequence>
9076
+ <xsd:attribute ref="source"/>
8955
9077
  </xsd:complexType>
8956
9078
  <xsd:complexType name="TlofSafeAreaUidType">
8957
9079
  <xsd:annotation>
@@ -9090,6 +9212,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9090
9212
  </xsd:annotation>
9091
9213
  </xsd:element>
9092
9214
  </xsd:sequence>
9215
+ <xsd:attribute ref="source"/>
9093
9216
  </xsd:complexType>
9094
9217
  <xsd:complexType name="TlofUidType">
9095
9218
  <xsd:annotation>
@@ -9155,6 +9278,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9155
9278
  </xsd:annotation>
9156
9279
  </xsd:element>
9157
9280
  </xsd:sequence>
9281
+ <xsd:attribute ref="source"/>
9158
9282
  </xsd:complexType>
9159
9283
  <xsd:complexType name="TrafficFlowRestrictionUidType">
9160
9284
  <xsd:annotation>
@@ -9190,6 +9314,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9190
9314
  </xsd:annotation>
9191
9315
  </xsd:element>
9192
9316
  </xsd:sequence>
9317
+ <xsd:attribute ref="source"/>
9193
9318
  </xsd:complexType>
9194
9319
  <xsd:complexType name="UnitAssociationUidType">
9195
9320
  <xsd:annotation>
@@ -9235,6 +9360,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9235
9360
  </xsd:annotation>
9236
9361
  </xsd:element>
9237
9362
  </xsd:sequence>
9363
+ <xsd:attribute ref="source"/>
9238
9364
  </xsd:complexType>
9239
9365
  <xsd:complexType name="UnitContactAddressUidType">
9240
9366
  <xsd:annotation>
@@ -9279,11 +9405,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9279
9405
  <xsd:documentation>Organisation unit providing services is located at Aerodrome / Heliport</xsd:documentation>
9280
9406
  </xsd:annotation>
9281
9407
  </xsd:element>
9282
- <xsd:element name="codeType" type="codeTypeUnit">
9283
- <xsd:annotation>
9284
- <xsd:documentation>Type</xsd:documentation>
9285
- </xsd:annotation>
9286
- </xsd:element>
9287
9408
  <xsd:element name="codeClass" type="codeClassUnit">
9288
9409
  <xsd:annotation>
9289
9410
  <xsd:documentation>Classification</xsd:documentation>
@@ -9327,8 +9448,14 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9327
9448
  <xsd:documentation>Name</xsd:documentation>
9328
9449
  </xsd:annotation>
9329
9450
  </xsd:element>
9451
+ <xsd:element name="codeType" type="codeTypeUnit">
9452
+ <xsd:annotation>
9453
+ <xsd:documentation>Type</xsd:documentation>
9454
+ </xsd:annotation>
9455
+ </xsd:element>
9330
9456
  </xsd:sequence>
9331
9457
  <xsd:attribute ref="mid"/>
9458
+ <xsd:attribute ref="region" use="required"/>
9332
9459
  </xsd:complexType>
9333
9460
  <xsd:complexType name="VorLimitationType">
9334
9461
  <xsd:annotation>
@@ -9387,6 +9514,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9387
9514
  </xsd:annotation>
9388
9515
  </xsd:element>
9389
9516
  </xsd:sequence>
9517
+ <xsd:attribute ref="source"/>
9390
9518
  </xsd:complexType>
9391
9519
  <xsd:complexType name="VorLimitationUidType">
9392
9520
  <xsd:annotation>
@@ -9577,6 +9705,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9577
9705
  </xsd:element>
9578
9706
  </xsd:sequence>
9579
9707
  <xsd:attribute ref="mid"/>
9708
+ <xsd:attribute ref="region" use="required"/>
9580
9709
  </xsd:complexType>
9581
9710
  <xsd:complexType name="VorUsageLimitationType">
9582
9711
  <xsd:annotation>
@@ -9595,6 +9724,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9595
9724
  </xsd:element>
9596
9725
  <xsd:element name="UsageLimit" type="NavaidLimitationType" minOccurs="0" maxOccurs="unbounded"/>
9597
9726
  </xsd:sequence>
9727
+ <xsd:attribute ref="source"/>
9598
9728
  </xsd:complexType>
9599
9729
  <xsd:complexType name="VorUsageLimitationUidType">
9600
9730
  <xsd:annotation>
@@ -9674,6 +9804,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9674
9804
  </xsd:complexType>
9675
9805
  </xsd:element>
9676
9806
  </xsd:sequence>
9807
+ <xsd:attribute ref="source"/>
9677
9808
  </xsd:complexType>
9678
9809
  <xsd:complexType name="LabelMarkerUidType">
9679
9810
  <xsd:annotation>
@@ -9692,6 +9823,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9692
9823
  </xsd:element>
9693
9824
  </xsd:sequence>
9694
9825
  <xsd:attribute ref="mid"/>
9826
+ <xsd:attribute ref="region" use="required"/>
9695
9827
  </xsd:complexType>
9696
9828
  <xsd:group name="SectorOfCircle">
9697
9829
  <xsd:sequence>