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 +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
|
+
[![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,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>
|