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 +7 -0
- data/.gitignore +8 -0
- data/.rspec +1 -0
- data/.travis.yml +13 -0
- data/CHANGELOG.md +196 -0
- data/Gemfile +2 -0
- data/LICENSE +20 -0
- data/README.md +69 -0
- data/Rakefile +12 -0
- data/benchmark/benchmark.rb +19 -0
- data/benchmark/soap_response.xml +266 -0
- data/lib/nori/core_ext/hash.rb +75 -0
- data/lib/nori/core_ext/object.rb +13 -0
- data/lib/nori/core_ext/string.rb +21 -0
- data/lib/nori/core_ext.rb +3 -0
- data/lib/nori/parser/nokogiri.rb +47 -0
- data/lib/nori/parser/rexml.rb +51 -0
- data/lib/nori/string_io_file.rb +7 -0
- data/lib/nori/string_with_attributes.rb +7 -0
- data/lib/nori/version.rb +5 -0
- data/lib/nori/xml_utility_node.rb +253 -0
- data/lib/nori.rb +72 -0
- data/nori.gemspec +25 -0
- data/spec/nori/api_spec.rb +169 -0
- data/spec/nori/core_ext/hash_spec.rb +60 -0
- data/spec/nori/core_ext/object_spec.rb +19 -0
- data/spec/nori/core_ext/string_spec.rb +33 -0
- data/spec/nori/nori_spec.rb +630 -0
- data/spec/spec_helper.rb +2 -0
- metadata +113 -0
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
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/.travis.yml
ADDED
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
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
|
+
[](http://travis-ci.org/savonrb/nori)
|
5
|
+
[](http://badge.fury.io/rb/nori)
|
6
|
+
[](https://codeclimate.com/github/savonrb/nori)
|
7
|
+
[](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,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>
|