nori-ng-1.6 2.3.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7404704e7de291c9eea9d134de133a5d79ab503e
4
+ data.tar.gz: 4e5a0f6c8cdedd316b5a26858fb727e40e1d36f6
5
+ SHA512:
6
+ metadata.gz: 2e0659c96fce36cbb96e143409e2b7ec229a6bdb6bd26cee68925a32ae16361a99efbf4bfcd1f57b0a682b93e90a65845c46d6132aabe94dc6d2b05d0bd95948
7
+ data.tar.gz: 8af2a140d43c49c370fafe5af7b77ecb55a24fdd991b7b942174ed98ba534694a6a25dc47bb144ef887e8c1a49a62d99cc23cdbe2bb22ff4a7a6c234095fbf4e
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ .DS_Store
2
+ doc
3
+ coverage
4
+ *~
5
+ *.gem
6
+ .bundle
7
+ Gemfile.lock
8
+ /.idea
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ # https://github.com/travis-ci/travis-ci/wiki/.travis.yml-options
2
+ language: "ruby"
3
+ script: "bundle exec rake"
4
+ rvm:
5
+ - 1.8.7
6
+ - 1.9.2
7
+ - 1.9.3
8
+ - 2.0
9
+ - jruby-18mode
10
+ - jruby-19mode
11
+ - rbx-18mode
12
+ - rbx-19mode
13
+ - ree
data/CHANGELOG.md ADDED
@@ -0,0 +1,196 @@
1
+ # 2.3.0 (2013-07-26)
2
+
3
+ * Change: `Nori#find` now ignores namespace prefixes in Hash keys it is searching through.
4
+
5
+ * Fix: Limited Nokogiri to < 1.6, because v1.6 dropped support for Ruby 1.8.
6
+
7
+ # 2.2.0 (2013-04-25)
8
+
9
+ * Feature: [#42](https://github.com/savonrb/nori/pull/42) adds the `:delete_namespace_attributes`
10
+ option to remove namespace attributes like `xmlns:*` or `xsi:*`.
11
+
12
+ # 2.1.0 (2013-04-21)
13
+
14
+ * Feature: Added `Nori.hash_key` and `Nori#find` to work with Hash keys generated by Nori.
15
+ Original issue: [savonrb/savon#393](https://github.com/savonrb/savon/pull/393)
16
+
17
+ # 2.0.4 (2013-02-26)
18
+
19
+ * Fix: [#37](https://github.com/savonrb/nori/issues/37) special characters
20
+ problem on Ruby 1.9.3-p392.
21
+
22
+ # 2.0.3 (2013-01-10)
23
+
24
+ * Fix for remote code execution bug. For more in-depth information, read about the
25
+ recent [Rails hotfix](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/61bkgvnSGTQ).
26
+ Please make sure to upgrade now!
27
+
28
+ # 2.0.2 (YANKED)
29
+
30
+ * Yanked because of a problem with XML that starts with an instruction tag.
31
+
32
+ # 2.0.1 (YANKED)
33
+
34
+ * Yanked because of a problem with XML that starts with an instruction tag.
35
+
36
+ # 2.0.0 (2012-12-12)
37
+
38
+ Please make sure to read the updated README for how to use the new version.
39
+
40
+ * Change: Nori now defaults to use the Nokogiri parser.
41
+
42
+ * Refactoring: Changed the `Nori` module to a class. This might cause problems if you
43
+ included the `Nori` module somewhere in your application. This use case was removed
44
+ for overall simplicity.
45
+
46
+ * Refactoring: Changed the interface to remove any global state. The global configuration
47
+ is gone and replaced with simple options to be passed to `Nori.new`.
48
+
49
+ ``` ruby
50
+ parser = Nori.new(strip_namespaces: true)
51
+ parser.parse(xml)
52
+ ```
53
+
54
+ * Refactoring: Removed the `Nori::Parser` module methods. After refactoring the rest,
55
+ there was only a single method left for this module and that was moved to `Nori`.
56
+
57
+ * Fix: [#16](https://github.com/savonrb/nori/issues/16) strip XML passed to Nori.
58
+
59
+ ## 1.1.5 (2013-03-03)
60
+
61
+ * Fix: [#37](https://github.com/savonrb/nori/issues/37) special characters
62
+ problem on Ruby 1.9.3-p392.
63
+
64
+ ## 1.1.4 (2013-01-10)
65
+
66
+ * Fix for remote code execution bug. For more in-depth information, read about the
67
+ recent [Rails hotfix](https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/61bkgvnSGTQ).
68
+ Please make sure to upgrade now!
69
+
70
+ ## 1.1.3 (2012-07-12)
71
+
72
+ * Fix: Merged [pull request 21](https://github.com/savonrb/nori/pull/21) to fix an
73
+ issue with date/time/datetime regexes not matching positive time zone offsets and
74
+ datetime strings with seconds.
75
+
76
+ ## 1.1.2 (2012-06-30)
77
+
78
+ * Fix: Reverted `Object#xml_attributes` feature which is planned for version 2.0.
79
+
80
+ ## 1.1.1 (2012-06-29) - yanked
81
+
82
+ * Fix: Merged [pull request 17](https://github.com/savonrb/nori/pull/17) for improved
83
+ xs:time/xs:date/xs:dateTime regular expression matchers.
84
+
85
+ ## 1.1.0 (2012-02-17)
86
+
87
+ * Improvement: Merged [pull request 9](https://github.com/savonrb/nori/pull/9) to
88
+ allow multiple configurations of Nori.
89
+
90
+ * Fix: Merged [pull request 10](https://github.com/savonrb/nori/pull/10) to handle
91
+ date/time parsing errors. Fixes a couple of similar error reports.
92
+
93
+ ## 1.0.2 (2011-07-04)
94
+
95
+ * Fix: When specifying a custom formula to convert tags, XML attributes were ignored.
96
+ Now, a formula is applied to both XML tags and attributes.
97
+
98
+ ## 1.0.1 (2011-06-21)
99
+
100
+ * Fix: Make sure to always load both StringWithAttributes and StringIOFile
101
+ to prevent NameError's.
102
+
103
+ ## 1.0.0 (2011-06-20)
104
+
105
+ * Notice: As of v1.0.0, Nori will follow [Semantic Versioning](http://semver.org).
106
+
107
+ * Feature: Added somewhat advanced typecasting:
108
+
109
+ What this means:
110
+
111
+ * "true" and "false" are converted to TrueClass and FalseClass
112
+ * Strings matching an xs:time, xs:date and xs:dateTime are converted
113
+ to Time, Date and DateTime objects.
114
+
115
+ You can disable this feature via:
116
+
117
+ Nori.advanced_typecasting = false
118
+
119
+ * Feature: Added an option to strip the namespaces from every tag.
120
+ This feature might raise problems and is therefore disabled by default.
121
+
122
+ Nori.strip_namespaces = true
123
+
124
+ * Feature: Added an option to specify a custom formula to convert tags.
125
+ Here's an example:
126
+
127
+ Nori.configure do |config|
128
+ config.convert_tags_to { |tag| tag.snake_case.to_sym }
129
+ end
130
+
131
+ xml = '<userResponse><accountStatus>active</accountStatus></userResponse>'
132
+ parse(xml).should ## { :user_response => { :account_status => "active" }
133
+
134
+ ## 0.2.4 (2011-06-21)
135
+
136
+ * Fix: backported fixes from v1.0.1
137
+
138
+ ## 0.2.3 (2011-05-26)
139
+
140
+ * Fix: Use extended core classes StringWithAttributes and StringIOFile instead of
141
+ creating singletons to prevent serialization problems.
142
+
143
+ ## 0.2.2 (2011-05-16)
144
+
145
+ * Fix: namespaced xs:nil values should be nil objects.
146
+
147
+ ## 0.2.1 (2011-05-15)
148
+
149
+ * Fix: Changed XML attributes converted to Hash keys to be prefixed with an @-sign.
150
+ This avoids problems with attributes and child nodes having the same name.
151
+
152
+ <multiRef id="id1">
153
+ <approved xsi:type="xsd:boolean">true</approved>
154
+ <id xsi:type="xsd:long">76737</id>
155
+ </multiRef>
156
+
157
+ is now translated to:
158
+
159
+ { "multiRef" => { "@id" => "id1", "id" => "76737", "approved" => "true" } }
160
+
161
+ ## 0.2.0 (2011-04-30)
162
+
163
+ * Removed JSON from the original Crack basis
164
+ * Fixed a problem with Object#blank?
165
+ * Added swappable parsers
166
+ * Added a Nokogiri parser with you can switch to via:
167
+
168
+ Nori.parser = :nokogiri
169
+
170
+ ## 0.1.7 2010-02-19
171
+ * 1 minor patch
172
+ * Added patch from @purp for ISO 8601 date/time format
173
+
174
+ ## 0.1.6 2010-01-31
175
+ * 1 minor patch
176
+ * Added Crack::VERSION constant - http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices
177
+
178
+ ## 0.1.5 2010-01-27
179
+ * 1 minor patch
180
+ * Strings that begin with dates shouldn't be parsed as such (sandro)
181
+
182
+ ## 0.1.3 2009-06-22
183
+ * 1 minor patch
184
+ * Parsing a text node with attributes stores them in the attributes method (tamalw)
185
+
186
+ ## 0.1.2 2009-04-21
187
+ * 2 minor patches
188
+ * Correct unnormalization of attribute values (der-flo)
189
+ * Fix error in parsing YAML in the case where a hash value ends with backslashes, and there are subsequent values in the hash (deadprogrammer)
190
+
191
+ ## 0.1.1 2009-03-31
192
+ * 1 minor patch
193
+ * Parsing empty or blank xml now returns empty hash instead of raising error.
194
+
195
+ ## 0.1.0 2009-03-28
196
+ * Initial release.
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Daniel Harrington
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,69 @@
1
+ Nori
2
+ ====
3
+
4
+ [![Build Status](https://secure.travis-ci.org/savonrb/nori.png)](http://travis-ci.org/savonrb/nori)
5
+ [![Gem Version](https://badge.fury.io/rb/nori.png)](http://badge.fury.io/rb/nori)
6
+ [![Code Climate](https://codeclimate.com/github/savonrb/nori.png)](https://codeclimate.com/github/savonrb/nori)
7
+ [![Coverage Status](https://coveralls.io/repos/savonrb/nori/badge.png?branch=master)](https://coveralls.io/r/savonrb/nori)
8
+
9
+
10
+ Really simple XML parsing ripped from Crack which ripped it from Merb.
11
+ Nori was created to bypass the stale development of Crack, improve its XML parser
12
+ and fix certain issues.
13
+
14
+ ``` ruby
15
+ parser = Nori.new
16
+ parser.parse("<tag>This is the contents</tag>")
17
+ # => { 'tag' => 'This is the contents' }
18
+ ```
19
+
20
+ Nori supports pluggable parsers and ships with both REXML and Nokogiri implementations.
21
+ It defaults to Nokogiri since v2.0.0, but you can change it to use REXML via:
22
+
23
+ ``` ruby
24
+ Nori.new(:parser => :rexml) # or :nokogiri
25
+ ```
26
+
27
+ Make sure Nokogiri is in your LOAD_PATH when parsing XML, because Nori tries to load it
28
+ when it's needed.
29
+
30
+
31
+ Typecasting
32
+ -----------
33
+
34
+ Besides regular typecasting, Nori features somewhat "advanced" typecasting:
35
+
36
+ * "true" and "false" String values are converted to `TrueClass` and `FalseClass`.
37
+ * String values matching xs:time, xs:date and xs:dateTime are converted
38
+ to `Time`, `Date` and `DateTime` objects.
39
+
40
+ You can disable this feature via:
41
+
42
+ ``` ruby
43
+ Nori.new(:advanced_typecasting => false)
44
+ ```
45
+
46
+
47
+ Namespaces
48
+ ----------
49
+
50
+ Nori can strip the namespaces from your XML tags. This feature might raise
51
+ problems and is therefore disabled by default. Enable it via:
52
+
53
+ ``` ruby
54
+ Nori.new(:strip_namespaces => true)
55
+ ```
56
+
57
+
58
+ XML tags -> Hash keys
59
+ ---------------------
60
+
61
+ Nori lets you specify a custom formula to convert XML tags to Hash keys.
62
+ Let me give you an example:
63
+
64
+ ``` ruby
65
+ parser = Nori.new(:convert_tags_to => lambda { |tag| tag.snakecase.to_sym })
66
+
67
+ xml = '<userResponse><accountStatus>active</accountStatus></userResponse>'
68
+ parser.parse(xml) # => { :user_response => { :account_status => "active" }
69
+ ```
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ desc "Benchmark Nori parsers"
4
+ task :benchmark do
5
+ require "benchmark/benchmark"
6
+ end
7
+
8
+ require "rspec/core/rake_task"
9
+ RSpec::Core::RakeTask.new
10
+
11
+ task :default => :spec
12
+ task :test => :spec
@@ -0,0 +1,19 @@
1
+ $:.push File.expand_path("../../lib", __FILE__)
2
+ require "nori"
3
+
4
+ require "benchmark"
5
+
6
+ Benchmark.bm 30 do |x|
7
+
8
+ num = 500
9
+ xml = File.read File.expand_path("../soap_response.xml", __FILE__)
10
+
11
+ x.report "rexml parser" do
12
+ num.times { Nori.new(parser: :rexml).parse xml }
13
+ end
14
+
15
+ x.report "nokogiri parser" do
16
+ num.times { Nori.new(parser: :nokogiri).parse xml }
17
+ end
18
+
19
+ end
@@ -0,0 +1,266 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3
+ <soap:Body>
4
+ <GetICB_9_2_4_DestInfoWithDestIdResponse xmlns="http://airline.com/">
5
+ <GetICB_9_2_4_DestInfoWithDestIdResult>
6
+ <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
7
+ <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="CL_9_2_4_DestInfo" msdata:UseCurrentLocale="true">
8
+ <xs:complexType>
9
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
10
+ <xs:element name="CL_9_2_4_DestInfo">
11
+ <xs:complexType>
12
+ <xs:sequence>
13
+ <xs:element name="DESTINATION" minOccurs="0">
14
+ <xs:simpleType>
15
+ <xs:restriction base="xs:string">
16
+ <xs:maxLength value="64" />
17
+ </xs:restriction>
18
+ </xs:simpleType>
19
+ </xs:element>
20
+ <xs:element name="COUNTRY" minOccurs="0">
21
+ <xs:simpleType>
22
+ <xs:restriction base="xs:string">
23
+ <xs:maxLength value="50" />
24
+ </xs:restriction>
25
+ </xs:simpleType>
26
+ </xs:element>
27
+ <xs:element name="AIRPORTNAME" minOccurs="0">
28
+ <xs:simpleType>
29
+ <xs:restriction base="xs:string">
30
+ <xs:maxLength value="70" />
31
+ </xs:restriction>
32
+ </xs:simpleType>
33
+ </xs:element>
34
+ <xs:element name="DISTANCE_APT_CTY" minOccurs="0">
35
+ <xs:simpleType>
36
+ <xs:restriction base="xs:string">
37
+ <xs:maxLength value="50" />
38
+ </xs:restriction>
39
+ </xs:simpleType>
40
+ </xs:element>
41
+ <xs:element name="TRANSPORT_APT_CTY" minOccurs="0">
42
+ <xs:simpleType>
43
+ <xs:restriction base="xs:string">
44
+ <xs:maxLength value="50" />
45
+ </xs:restriction>
46
+ </xs:simpleType>
47
+ </xs:element>
48
+ <xs:element name="REVCABIN" minOccurs="0">
49
+ <xs:simpleType>
50
+ <xs:restriction base="xs:string">
51
+ <xs:maxLength value="50" />
52
+ </xs:restriction>
53
+ </xs:simpleType>
54
+ </xs:element>
55
+ <xs:element name="REVCOCKPIT" minOccurs="0">
56
+ <xs:simpleType>
57
+ <xs:restriction base="xs:string">
58
+ <xs:maxLength value="50" />
59
+ </xs:restriction>
60
+ </xs:simpleType>
61
+ </xs:element>
62
+ <xs:element name="GROUPTEXT" minOccurs="0">
63
+ <xs:simpleType>
64
+ <xs:restriction base="xs:string">
65
+ <xs:maxLength value="50" />
66
+ </xs:restriction>
67
+ </xs:simpleType>
68
+ </xs:element>
69
+ <xs:element name="SORT" type="xs:decimal" minOccurs="0" />
70
+ <xs:element name="HEADING" minOccurs="0">
71
+ <xs:simpleType>
72
+ <xs:restriction base="xs:string">
73
+ <xs:maxLength value="30" />
74
+ </xs:restriction>
75
+ </xs:simpleType>
76
+ </xs:element>
77
+ <xs:element name="VISIBLE" type="xs:decimal" minOccurs="0" />
78
+ <xs:element name="SORT1" type="xs:decimal" minOccurs="0" />
79
+ <xs:element name="ITEMSORT" type="xs:decimal" minOccurs="0" />
80
+ <xs:element name="AUSWAHLTEXT" minOccurs="0">
81
+ <xs:simpleType>
82
+ <xs:restriction base="xs:string">
83
+ <xs:maxLength value="255" />
84
+ </xs:restriction>
85
+ </xs:simpleType>
86
+ </xs:element>
87
+ <xs:element name="REVDATE" type="xs:dateTime" minOccurs="0" />
88
+ <xs:element name="CABIN" type="xs:decimal" minOccurs="0" />
89
+ <xs:element name="COCKPIT" type="xs:decimal" minOccurs="0" />
90
+ <xs:element name="APIATA" minOccurs="0">
91
+ <xs:simpleType>
92
+ <xs:restriction base="xs:string">
93
+ <xs:maxLength value="3" />
94
+ </xs:restriction>
95
+ </xs:simpleType>
96
+ </xs:element>
97
+ </xs:sequence>
98
+ </xs:complexType>
99
+ </xs:element>
100
+ </xs:choice>
101
+ </xs:complexType>
102
+ </xs:element>
103
+ </xs:schema>
104
+ <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
105
+ <DocumentElement xmlns="">
106
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo1" msdata:rowOrder="0">
107
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
108
+ <COUNTRY>Spain Schengen</COUNTRY>
109
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
110
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
111
+ <REVCABIN>08.02.10</REVCABIN>
112
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
113
+ <GROUPTEXT>Passengers</GROUPTEXT>
114
+ <SORT>1</SORT>
115
+ <HEADING>Disembarking:</HEADING>
116
+ <VISIBLE>-1</VISIBLE>
117
+ <SORT1>2</SORT1>
118
+ <ITEMSORT>0</ITEMSORT>
119
+ <AUSWAHLTEXT>Baby buggies are delivered at aircraft door or stairs.</AUSWAHLTEXT>
120
+ <REVDATE>2008-09-01T00:00:00+02:00</REVDATE>
121
+ <CABIN>-1</CABIN>
122
+ <COCKPIT>0</COCKPIT>
123
+ <APIATA>PMI</APIATA>
124
+ </CL_9_2_4_DestInfo>
125
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo2" msdata:rowOrder="1">
126
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
127
+ <COUNTRY>Spain Schengen</COUNTRY>
128
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
129
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
130
+ <REVCABIN>08.02.10</REVCABIN>
131
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
132
+ <GROUPTEXT>Aircraft</GROUPTEXT>
133
+ <SORT>2</SORT>
134
+ <HEADING>Turnaround:</HEADING>
135
+ <VISIBLE>-1</VISIBLE>
136
+ <SORT1>5.30</SORT1>
137
+ <ITEMSORT>0</ITEMSORT>
138
+ <AUSWAHLTEXT>Station applies EST process.</AUSWAHLTEXT>
139
+ <REVDATE>2009-05-05T00:00:00+02:00</REVDATE>
140
+ <CABIN>-1</CABIN>
141
+ <COCKPIT>-1</COCKPIT>
142
+ <APIATA>PMI</APIATA>
143
+ </CL_9_2_4_DestInfo>
144
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo3" msdata:rowOrder="2">
145
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
146
+ <COUNTRY>Spain Schengen</COUNTRY>
147
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
148
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
149
+ <REVCABIN>08.02.10</REVCABIN>
150
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
151
+ <GROUPTEXT>General</GROUPTEXT>
152
+ <SORT>4</SORT>
153
+ <HEADING>Addresses:</HEADING>
154
+ <VISIBLE>-1</VISIBLE>
155
+ <SORT1>8.50</SORT1>
156
+ <ITEMSORT>1</ITEMSORT>
157
+ <AUSWAHLTEXT>
158
+ Station Manager:
159
+ YYYYYYYY XXXXXXX
160
+ PMIKXXX
161
+ Tel.:+34 971 xxx xxx
162
+ Mobile:+ 34 600 46 xx xx
163
+ </AUSWAHLTEXT>
164
+ <REVDATE>2010-02-08T00:00:00+01:00</REVDATE>
165
+ <CABIN>-1</CABIN>
166
+ <COCKPIT>-1</COCKPIT>
167
+ <APIATA>PMI</APIATA>
168
+ </CL_9_2_4_DestInfo>
169
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo4" msdata:rowOrder="3">
170
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
171
+ <COUNTRY>Spain Schengen</COUNTRY>
172
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
173
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
174
+ <REVCABIN>08.02.10</REVCABIN>
175
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
176
+ <GROUPTEXT>General</GROUPTEXT>
177
+ <SORT>4</SORT>
178
+ <HEADING>Addresses:</HEADING>
179
+ <VISIBLE>-1</VISIBLE>
180
+ <SORT1>8.50</SORT1>
181
+ <ITEMSORT>2</ITEMSORT>
182
+ <AUSWAHLTEXT>
183
+ Handling Agent:
184
+ xxxxxxx Airport Services
185
+ Operations
186
+ PMIIxxx
187
+ Tel +34 971 xxx xxx
188
+ Passenger Services
189
+ PMIPXXX
190
+ Tel : +34 971 xxx xxx
191
+ </AUSWAHLTEXT>
192
+ <REVDATE>2010-02-08T00:00:00+01:00</REVDATE>
193
+ <CABIN>-1</CABIN>
194
+ <COCKPIT>-1</COCKPIT>
195
+ <APIATA>PMI</APIATA>
196
+ </CL_9_2_4_DestInfo>
197
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo5" msdata:rowOrder="4">
198
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
199
+ <COUNTRY>Spain Schengen</COUNTRY>
200
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
201
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
202
+ <REVCABIN>08.02.10</REVCABIN>
203
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
204
+ <GROUPTEXT>General</GROUPTEXT>
205
+ <SORT>4</SORT>
206
+ <HEADING>Announcements:</HEADING>
207
+ <VISIBLE>-1</VISIBLE>
208
+ <SORT1>11</SORT1>
209
+ <ITEMSORT>1</ITEMSORT>
210
+ <AUSWAHLTEXT>Prerecorded Spanish announcements available.</AUSWAHLTEXT>
211
+ <REVDATE>2009-12-30T00:00:00+01:00</REVDATE>
212
+ <CABIN>-1</CABIN>
213
+ <COCKPIT>0</COCKPIT>
214
+ <APIATA>PMI</APIATA>
215
+ </CL_9_2_4_DestInfo>
216
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo6" msdata:rowOrder="5">
217
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
218
+ <COUNTRY>Spain Schengen</COUNTRY>
219
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
220
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
221
+ <REVCABIN>08.02.10</REVCABIN>
222
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
223
+ <GROUPTEXT>General</GROUPTEXT>
224
+ <SORT>4</SORT>
225
+ <HEADING>Life jackets / DEMO:</HEADING>
226
+ <VISIBLE>-1</VISIBLE>
227
+ <SORT1>12</SORT1>
228
+ <ITEMSORT>0</ITEMSORT>
229
+ <AUSWAHLTEXT>
230
+ Infant life jackets to be distributed.
231
+ DEMO with life jackets.
232
+ </AUSWAHLTEXT>
233
+ <REVDATE>2002-07-24T00:00:00+02:00</REVDATE>
234
+ <CABIN>-1</CABIN>
235
+ <COCKPIT>0</COCKPIT>
236
+ <APIATA>PMI</APIATA>
237
+ </CL_9_2_4_DestInfo>
238
+ <CL_9_2_4_DestInfo diffgr:id="CL_9_2_4_DestInfo7" msdata:rowOrder="6">
239
+ <DESTINATION>PALMA DE MALLORCA</DESTINATION>
240
+ <COUNTRY>Spain Schengen</COUNTRY>
241
+ <AIRPORTNAME>Son San Juan</AIRPORTNAME>
242
+ <DISTANCE_APT_CTY>11 km</DISTANCE_APT_CTY>
243
+ <REVCABIN>08.02.10</REVCABIN>
244
+ <REVCOCKPIT>08.02.10</REVCOCKPIT>
245
+ <GROUPTEXT>Catering</GROUPTEXT>
246
+ <SORT>5</SORT>
247
+ <HEADING>General:</HEADING>
248
+ <VISIBLE>0</VISIBLE>
249
+ <SORT1>1</SORT1>
250
+ <ITEMSORT>1</ITEMSORT>
251
+ <AUSWAHLTEXT>
252
+ LSG XXX XXXX
253
+ Tel.: +34 971 xxx xxx or xxx xxx
254
+ Sita: PMIAXXX
255
+ </AUSWAHLTEXT>
256
+ <REVDATE>2005-06-01T00:00:00+02:00</REVDATE>
257
+ <CABIN>-1</CABIN>
258
+ <COCKPIT>0</COCKPIT>
259
+ <APIATA>PMI</APIATA>
260
+ </CL_9_2_4_DestInfo>
261
+ </DocumentElement>
262
+ </diffgr:diffgram>
263
+ </GetICB_9_2_4_DestInfoWithDestIdResult>
264
+ </GetICB_9_2_4_DestInfoWithDestIdResponse>
265
+ </soap:Body>
266
+ </soap:Envelope>