nori-ng-1.6 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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>