aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Florisson2013-01-03 17:30:15 +0100
committerMarc Florisson2013-01-03 17:30:15 +0100
commite75205a04d6f915bc7f2fdbe66ac2d10e1334e46 (patch)
treea525fc9b4ac3256f35fed5ce4a72eb891de1d142
parent32e6dcf8c87184f73e3010e32bc76b558a92d5ed (diff)
downloadchouette-core-e75205a04d6f915bc7f2fdbe66ac2d10e1334e46.tar.bz2
fix api v1
-rw-r--r--app/views/api/v1/companies/short_description.rabl6
-rw-r--r--app/views/api/v1/companies/show.rabl5
-rw-r--r--app/views/api/v1/connection_links/show.rabl21
-rw-r--r--app/views/api/v1/journey_patterns/short_description.rabl6
-rw-r--r--app/views/api/v1/journey_patterns/show.rabl31
-rw-r--r--app/views/api/v1/lines/short_description.rabl6
-rw-r--r--app/views/api/v1/lines/show.rabl18
-rw-r--r--app/views/api/v1/networks/short_description.rabl6
-rw-r--r--app/views/api/v1/networks/show.rabl7
-rw-r--r--app/views/api/v1/routes/short_description.rabl7
-rw-r--r--app/views/api/v1/routes/show.rabl37
-rw-r--r--app/views/api/v1/stop_areas/short_description.rabl10
-rw-r--r--app/views/api/v1/stop_areas/show.rabl24
-rw-r--r--app/views/api/v1/time_tables/show.rabl18
-rw-r--r--app/views/api/v1/trident_objects/short_description.rabl3
-rw-r--r--app/views/api/v1/trident_objects/show.rabl5
-rw-r--r--app/views/api/v1/vehicle_journeys/show.rabl36
-rw-r--r--doc/interfaces/api_rest_v1.xsd937
18 files changed, 1101 insertions, 82 deletions
diff --git a/app/views/api/v1/companies/short_description.rabl b/app/views/api/v1/companies/short_description.rabl
new file mode 100644
index 000000000..4382f1f2e
--- /dev/null
+++ b/app/views/api/v1/companies/short_description.rabl
@@ -0,0 +1,6 @@
+object @company
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :short_name, :registration_number].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/companies/show.rabl b/app/views/api/v1/companies/show.rabl
index b7234081c..b2b064c54 100644
--- a/app/views/api/v1/companies/show.rabl
+++ b/app/views/api/v1/companies/show.rabl
@@ -1,5 +1,6 @@
object @company
extends "api/v1/trident_objects/show"
-attributes :name, :short_name, :organizational_unit, :operating_department_name
-attributes :code, :phone, :fax, :email, :registration_number
+[ :name, :short_name, :organizational_unit, :operating_department_name, :code, :phone, :fax, :email, :registration_number].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/connection_links/show.rabl b/app/views/api/v1/connection_links/show.rabl
index ad3fae7dd..ce3410f83 100644
--- a/app/views/api/v1/connection_links/show.rabl
+++ b/app/views/api/v1/connection_links/show.rabl
@@ -1,13 +1,16 @@
object @connection_link
extends "api/v1/trident_objects/show"
-attributes :connection_link_type, :name, :comment
-attributes :link_distance, :link_type, :default_duration, :frequent_traveller_duration, :occasional_traveller_duration
-attributes :mobility_restricted_traveller_duration, :mobility_restricted_suitability, :stairs_availability, :lift_availability, :int_user_needs
+[ :name, :link_distance, :link_type, :default_duration,
+ :frequent_traveller_duration, :occasional_traveller_duration, :mobility_restricted_traveller_duration,
+ :mobility_restricted_suitability, :stairs_availability, :lift_availability, :comment].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
-child :departure => :departure do
- attributes :objectid, :name, :area_type, :longitude, :latitude, :long_lat_type
-end
-child :arrival => :arrival do
- attributes :objectid, :name, :area_type, :longitude, :latitude, :long_lat_type
-end
+node :start_of_link_short_description do |connection|
+ partial("api/v1/stop_areas/short_description", :object => connection.departure) unless connection.departure.nil?
+end
+
+node :end_of_link_short_description do |connection|
+ partial("api/v1/stop_areas/short_description", :object => connection.arrival) unless connection.arrival.nil?
+end
diff --git a/app/views/api/v1/journey_patterns/short_description.rabl b/app/views/api/v1/journey_patterns/short_description.rabl
new file mode 100644
index 000000000..5932f85f7
--- /dev/null
+++ b/app/views/api/v1/journey_patterns/short_description.rabl
@@ -0,0 +1,6 @@
+object @journey_pattern
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :published_name, :registration_number].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/journey_patterns/show.rabl b/app/views/api/v1/journey_patterns/show.rabl
index 60eed951c..882660360 100644
--- a/app/views/api/v1/journey_patterns/show.rabl
+++ b/app/views/api/v1/journey_patterns/show.rabl
@@ -1,22 +1,21 @@
object @journey_pattern
extends "api/v1/trident_objects/show"
-attributes :name, :comment, :registration_number
-attributes :published_name
-
-child :route do
- attributes :objectid, :name, :published_name, :number, :direction, :wayback
-end
-child :vehicle_journeys do |vj|
- attributes :objectid
+[:name, :published_name, :registration_number, :comment].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
-child :stop_points => :stop_areas do |stop_point|
- node(:stop_area) do |n|
- { :objectid => n.stop_area.objectid, :name => n.stop_area.name,
- :parent => n.stop_area.parent.objectid,
- :area_type => n.stop_area.area_type,
- :longitude => n.stop_area.longitude, :latitude => n.stop_area.latitude,
- :long_lat_type => n.stop_area.long_lat_type}
- end
+
+node(:route_short_description) do |journey_pattern|
+ partial("api/v1/routes/short_description", :object => journey_pattern.route)
end
+node(:vehicle_journey_object_ids) do |journey_pattern|
+ journey_pattern.vehicle_journeys.map(&:objectid)
+end unless root_object.vehicle_journeys.empty?
+
+child :stop_points => :stop_area_short_descriptions do |stop_points|
+ node do |stop_point|
+ partial("api/v1/stop_areas/short_description", :object => stop_point.stop_area)
+ end
+end unless root_object.stop_points.empty?
+
diff --git a/app/views/api/v1/lines/short_description.rabl b/app/views/api/v1/lines/short_description.rabl
new file mode 100644
index 000000000..7d42e4584
--- /dev/null
+++ b/app/views/api/v1/lines/short_description.rabl
@@ -0,0 +1,6 @@
+object @line
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :published_name, :number, :registration_number].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/lines/show.rabl b/app/views/api/v1/lines/show.rabl
index 9c36d13b1..dcd497aa5 100644
--- a/app/views/api/v1/lines/show.rabl
+++ b/app/views/api/v1/lines/show.rabl
@@ -1,12 +1,14 @@
object @line
extends "api/v1/trident_objects/show"
-attributes :name, :number, :published_name, :transport_mode_name
-attributes :registration_number, :comment, :mobility_restricted_suitability, :int_user_needs
-
-child :network do
- attributes :objectid, :name, :description, :registration_number
+[ :name, :number, :published_name, :transport_mode_name, :registration_number, :comment, :mobility_restricted_suitability].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
-child :company do
- attributes :objectid, :name, :short_name, :registration_number
-end
+node :network_short_description do |line|
+ partial("api/v1/networks/short_description", :object => line.network)
+end unless root_object.network.nil?
+
+node :company_short_description do |line|
+ partial("api/v1/companies/short_description", :object => line.company)
+end unless root_object.company.nil?
+
diff --git a/app/views/api/v1/networks/short_description.rabl b/app/views/api/v1/networks/short_description.rabl
new file mode 100644
index 000000000..9dc458064
--- /dev/null
+++ b/app/views/api/v1/networks/short_description.rabl
@@ -0,0 +1,6 @@
+object @network
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :description, :registration_number].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/networks/show.rabl b/app/views/api/v1/networks/show.rabl
index 7869ef7ec..ae5915da2 100644
--- a/app/views/api/v1/networks/show.rabl
+++ b/app/views/api/v1/networks/show.rabl
@@ -1,4 +1,7 @@
object @network
extends "api/v1/trident_objects/show"
-attributes :version_date, :description, :name, :registration_number, :source_name
-attributes :source_type, :source_identifier, :comment
+
+[ :version_date, :description, :name, :registration_number, :source_name,
+ :source_type, :source_identifier, :comment].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/routes/short_description.rabl b/app/views/api/v1/routes/short_description.rabl
new file mode 100644
index 000000000..ae149167d
--- /dev/null
+++ b/app/views/api/v1/routes/short_description.rabl
@@ -0,0 +1,7 @@
+object @route
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :published_name, :number, :direction, :wayback].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
+
diff --git a/app/views/api/v1/routes/show.rabl b/app/views/api/v1/routes/show.rabl
index 2e481432d..e3a7fdffa 100644
--- a/app/views/api/v1/routes/show.rabl
+++ b/app/views/api/v1/routes/show.rabl
@@ -1,24 +1,29 @@
object @route
extends "api/v1/trident_objects/show"
-attributes :direction_code, :wayback_code, :name
-attributes :comment, :opposite_route_id, :published_name, :number, :direction, :wayback
-
-child :line do
- attributes :objectid, :name, :published_name, :number, :registration_number
+[:name, :published_name, :number, :direction].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
+attributes :opposite_route_id => :way_back_route_id, :unless => lambda { |m| m.opposite_route_id.nil?}
+attributes :comment, :unless => lambda { |m| m.comment.nil?}
+attributes :wayback => :way_back, :unless => lambda { |m| m.wayback.nil?}
-child :journey_patterns do |journey_pattern|
- attributes :objectid, :name, :published_name, :registration_number
+node :line_short_description do |route|
+ partial("api/v1/lines/short_description", :object => route.line)
end
-child :vehicle_journeys do |vj|
- attributes :objectid
-end
+child :journey_patterns => :journey_pattern_short_descriptions do |journey_patterns|
+ node do |journey|
+ partial("api/v1/journey_patterns/short_description", :object => journey)
+ end
+end unless root_object.journey_patterns.empty?
-child :stop_areas do |stop_area|
- attributes :objectid, :name, :area_type, :longitude, :latitude, :long_lat_type
- glue stop_area.parent do
- attributes :objectid => :parent
- end
-end
+node(:vehicle_journey_object_ids) do |route|
+ route.vehicle_journeys.map(&:objectid)
+end unless root_object.vehicle_journeys.empty?
+
+child :stop_areas => :stop_area_short_descriptions do |stop_areas|
+ node do |stop_area|
+ partial("api/v1/stop_areas/short_description", :object => stop_area)
+ end
+end unless root_object.stop_areas.empty?
diff --git a/app/views/api/v1/stop_areas/short_description.rabl b/app/views/api/v1/stop_areas/short_description.rabl
new file mode 100644
index 000000000..73627c5a1
--- /dev/null
+++ b/app/views/api/v1/stop_areas/short_description.rabl
@@ -0,0 +1,10 @@
+object @stop_area
+extends "api/v1/trident_objects/short_description"
+
+[ :name, :area_type, :longitude, :latitude, :long_lat_type].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
+node(:parent_object_id) do |stop_area|
+ stop_area.parent.objectid
+end unless root_object.parent.nil?
+
diff --git a/app/views/api/v1/stop_areas/show.rabl b/app/views/api/v1/stop_areas/show.rabl
index db0f628bb..976d96342 100644
--- a/app/views/api/v1/stop_areas/show.rabl
+++ b/app/views/api/v1/stop_areas/show.rabl
@@ -1,11 +1,21 @@
object @stop_area
extends "api/v1/trident_objects/show"
-attributes :routing_stop_ids, :routing_line_ids
-attributes :name, :comment, :area_type, :registration_number
-attributes :nearest_topic_name, :fare_code, :longitude, :latitude, :long_lat_type, :x, :y, :projection_type
-attributes :country_code, :street_name
-
-child :parent => :parent do
- attributes :objectid, :name, :area_type, :longitude, :latitude, :long_lat_type
+[ :name, :area_type,:nearest_topic_name, :fare_code, :registration_number,
+ :longitude, :latitude, :long_lat_type,
+ :country_code, :street_name, :x, :y, :projection_type, :comment
+].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
+
+node(:routing_stop_area_object_ids) do |stop_area|
+ stop_area.routing_stops.map(&:objectid)
+end unless root_object.routing_stops.empty?
+
+node(:routing_line_object_ids) do |stop_area|
+ stop_area.routing_lines.map(&:objectid)
+end unless root_object.routing_lines.empty?
+
+node :parent do |stop_area|
+ partial("api/v1/stop_areas/short_description", :object => stop_area.parent)
+end unless root_object.parent.nil?
diff --git a/app/views/api/v1/time_tables/show.rabl b/app/views/api/v1/time_tables/show.rabl
index 90c5bc12c..ae1e6e180 100644
--- a/app/views/api/v1/time_tables/show.rabl
+++ b/app/views/api/v1/time_tables/show.rabl
@@ -1,14 +1,18 @@
object @time_table
extends "api/v1/trident_objects/show"
-attributes :version, :comment
-attributes :monday,:tuesday,:wednesday,:thursday,:friday,:saturday,:sunday
-
-child :dates => :dates do |date|
- attributes :date, :position
+[ :version, :comment].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
end
-child :periods => :periods do |period|
- attributes :period_start, :period_end
+node(:dates) do |time_table|
+ time_table.dates.map(&:date)
+end unless root_object.dates.empty?
+
+unless root_object.periods.empty?
+ attributes :monday,:tuesday,:wednesday,:thursday,:friday,:saturday,:sunday
+ child :periods => :periods do |period|
+ attributes :period_start, :period_end
+ end
end
diff --git a/app/views/api/v1/trident_objects/short_description.rabl b/app/views/api/v1/trident_objects/short_description.rabl
new file mode 100644
index 000000000..09f829850
--- /dev/null
+++ b/app/views/api/v1/trident_objects/short_description.rabl
@@ -0,0 +1,3 @@
+attributes :objectid => :object_id
+attributes :object_version
+
diff --git a/app/views/api/v1/trident_objects/show.rabl b/app/views/api/v1/trident_objects/show.rabl
index 4f28ac822..7d58d9a55 100644
--- a/app/views/api/v1/trident_objects/show.rabl
+++ b/app/views/api/v1/trident_objects/show.rabl
@@ -1,2 +1,5 @@
-attributes :objectid, :object_version, :creation_time, :creator_id
+attributes :objectid => :object_id
+[ :object_version, :creation_time, :creator_id].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
diff --git a/app/views/api/v1/vehicle_journeys/show.rabl b/app/views/api/v1/vehicle_journeys/show.rabl
index 488fb4766..e7288fffb 100644
--- a/app/views/api/v1/vehicle_journeys/show.rabl
+++ b/app/views/api/v1/vehicle_journeys/show.rabl
@@ -1,24 +1,32 @@
object @vehicle_journey
extends "api/v1/trident_objects/show"
-attributes :comment, :status_value
-attributes :transport_mode, :published_journey_name, :published_journey_identifier, :facility, :vehicle_type_identifier, :number
-
-child :route do
- attributes :objectid, :name, :published_name, :number, :direction, :wayback
-end
+[ :published_journey_name, :published_journey_identifier, :transport_mode, :vehicle_type_identifier, :status_value, :facility, :number, :comment].each do |attr|
+ attributes attr, :unless => lambda { |m| m.send( attr).nil?}
+end
-child :journey_pattern do
- attributes :objectid, :name, :published_name, :registration_number
+node(:route_short_description) do |vehicle|
+ partial("api/v1/routes/short_description", :object => vehicle.route)
end
-child :time_tables do
- attributes :objectid
+node(:journey_pattern_short_description) do |vehicle|
+ partial("api/v1/routes/short_description", :object => vehicle.journey_pattern)
end
-child :vehicle_journey_at_stops do |vjas|
- attributes :position, :connecting_service_id, :boarding_alighting_possibility, :arrival_time, :departure_time, :waiting_time, :elapse_duration, :headway_frequency
- node(:stop_area) do |vjas|
- {:objectid => vjas.stop_point.stop_area.objectid}
+node(:time_table_object_ids) do |vehicle|
+ vehicle.time_tables.map(&:objectid)
+end unless root_object.time_tables.empty?
+
+child :vehicle_journey_at_stops do |vehicle_stops|
+ node do |vehicle_stop|
+ node(:stop_area_object_id) { vehicle_stop.stop_point.stop_area.objectid }
+
+ [ :connecting_service_id, :arrival_time, :departure_time, :waiting_time, :elapse_duration,
+ :headway_frequency, :boarding_alighting_possibility].each do |attr|
+ node( attr) do
+ vehicle_stop.send(attr)
+ end unless vehicle_stop.send(attr).nil?
+ end
+ attributes :order => vehicle_stop.position, :unless => lambda { |m| m.send( :position).nil?}
end
end
diff --git a/doc/interfaces/api_rest_v1.xsd b/doc/interfaces/api_rest_v1.xsd
new file mode 100644
index 000000000..a31f92ff3
--- /dev/null
+++ b/doc/interfaces/api_rest_v1.xsd
@@ -0,0 +1,937 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ targetNamespace="http://www.chouette.mobi/schema/api/v1"
+ xmlns="http://www.chouette.mobi/schema/api/v1">
+ <xs:element name="Lines">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de lignes</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="Line"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Line" type="LineType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'une ligne</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Networks">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de réseaux</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="Network"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Network" type="NetworkType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'un réseau</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Companies">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de transporteurs</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="Company"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Company" type="CompanyType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'un transporteur</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="StopAreas">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection d'arrêts</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="StopArea"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="StopArea" type="StopAreaType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'un arrêt</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="ConnectionLinks">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de correspondances</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="ConnectionLink"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="ConnectionLink" type="ConnectionLinkType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'une correspondance</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="TimeTables">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de calendriers</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="TimeTable"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="TimeTable" type="TimeTableType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'un calendrier</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Routes">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de séquences d'arrêts</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="Route"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="Route" type="RouteType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'une séquence d'arrêts</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="JourneyPatterns">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de missions</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="JourneyPattern"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="JourneyPattern" type="JourneyPatternType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'une mission</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="VehicleJourneys">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection de courses</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" minOccurs="0" ref="VehicleJourney"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="VehicleJourney" type="VehicleJourneyType">
+ <xs:annotation>
+ <xs:documentation>Conteneur de réponse pour les requêtes de sélection du détail d'une course</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="TridentObjectType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au TridentObjectType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="CreationTime" type="xs:dateTime">
+ <xs:annotation>
+ <xs:documentation>creationTime de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="CreatorId" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>creatorId de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="TridentShortDescription">
+ <xs:annotation>
+ <xs:documentation>Structure qui rassemble les propriétés du TridentObjectType NEPTUNE qui servent à l'identification.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ObjectId" type="TridentIdType">
+ <xs:annotation>
+ <xs:documentation>objectid de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="ObjectVersion" type="xs:positiveInteger">
+ <xs:annotation>
+ <xs:documentation>objectVersion de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="NetworkType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au PTNetworkType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="VersionDate" type="xs:date">
+ <xs:annotation>
+ <xs:documentation>versionDate de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>description de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>registrationNumber de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="SourceName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>sourceName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="SourceIdentifier" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>sourceIdentifier de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="SourceType" type="SourceTypeType">
+ <xs:annotation>
+ <xs:documentation>sourceType de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Comment" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>comment de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CompanyType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au CompanyType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="ShortName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>shortName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="OrganisationalUnit" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>organisationalUnit de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="OperatingDepartmentName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>operatingDepartmentName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Code" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>code de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Phone" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>phone de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Fax" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>fax de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Email" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>email de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>registrationNumber de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CompanyShortDescriptionType">
+ <xs:annotation>
+ <xs:documentation>Structure équivalente la structure CompanyType mais qui n'en décrit que les propriétés principales.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="ShortName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>shortName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>registrationNumber de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="NetworkShortDesciptionType">
+ <xs:annotation>
+ <xs:documentation>Structure équivalente la structure NetworkType mais qui n'en décrit que les propriétés principales.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Description" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>description de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>registrationNumber de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="RoutingLineObjectIdsType">
+ <xs:annotation>
+ <xs:documentation>Structure utilisée uniquement pour décrire les StopArea ayant "ITL" comme AreaType.
+La structure qui rassemble les identififiants (TridentIdType NEPTUNE) des lignes de l'ITL.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="RoutingLineObjectId" type="TridentIdType">
+ <xs:annotation>
+ <xs:documentation>Identififiant (TridentIdType NEPTUNE) d'une ligne (structure LineType)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RoutingStopAreaObjectIdsType">
+ <xs:annotation>
+ <xs:documentation>Structure utilisée uniquement pour décrire les StopArea ayant "ITL" comme AreaType.
+La structure qui rassemble les identififiants (TridentIdType NEPTUNE) des arrêts de l'ITL.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="RoutingStopAreaObjectId" type="TridentIdType">
+ <xs:annotation>
+ <xs:documentation>Identififiant (TridentIdType NEPTUNE) d'un arrêt (structure StopAreaType)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="LineType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au LineType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>name de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Number" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>number de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="PublishedName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>publishedName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="TransportModeName" type="TransportModeNameType">
+ <xs:annotation>
+ <xs:documentation>transportModeName de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>registrationNumber de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Comment" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>comment de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="MobilityRestrictedSuitability" type="xs:boolean">
+ <xs:annotation>
+ <xs:documentation>mobilityRestrictedSuitability de la structure NEPTUNE associée</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="NetworkShortDescription" type="NetworkShortDesciptionType"/>
+ <xs:element minOccurs="0" name="CompanyShortDescription"
+ type="CompanyShortDescriptionType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="LineShortDescriptionType">
+ <xs:annotation>
+ <xs:documentation>Structure équivalente la structure LineType mais qui n'en décrit que les propriétés principales.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string"/>
+ <xs:element minOccurs="0" name="Number" type="xs:string"/>
+ <xs:element minOccurs="0" name="PublishedName" type="xs:string"/>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="StopAreaType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond à l'élément ChouetteArea NEPTUNE (qui regroupe les éléments StopArea at AreaCentroid).</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au StopAreaType.name (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AreaType" type="ChouetteAreaType">
+ <xs:annotation>
+ <xs:documentation>correspond au StopAreaType.areaType (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="NearestTopicName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au StopAreaType.nearestTopicName (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="FareCode" type="xs:int">
+ <xs:annotation>
+ <xs:documentation>correspond au StopAreaType.fareCode (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au StopAreaType.registrationNumber (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Longitude" type="LongitudeType">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.longitude (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Latitude" type="LatitudeType">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.latitude (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="LongLatType" type="LongLatTypeType">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.longLatType (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="StreetName" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.streetName (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="CountryCode" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.countryCode (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="X" type="xs:decimal">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.X (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Y" type="xs:decimal">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.Y (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="ProjectionType" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.projectionType (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Comment" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>correspond au AreaCentroid.comment (du format NEPTUNE)</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element maxOccurs="1" minOccurs="0" name="RoutingStopAreaObjectIds"
+ type="RoutingStopAreaObjectIdsType">
+ <xs:annotation>
+ <xs:documentation>Element présent uniquement pour les StopArea ayant "ITL" comme AreaType.
+L'élément rassemble les identififiants (TridentIdType NEPTUNE) des lignes de l'ITL.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="RoutingLineObjectIds" type="RoutingLineObjectIdsType">
+ <xs:annotation>
+ <xs:documentation>Element présent uniquement pour les StopArea ayant "ITL" comme AreaType.
+L'élément rassemble les identififiants (TridentIdType NEPTUNE) des arrêts de l'ITL.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element minOccurs="0" name="Parent" type="StopAreaShortDescriptionType">
+ <xs:annotation>
+ <xs:documentation>Element qui décrit le StopAreaType du niveau hiérachique supérieur si celui-ci existe.
+
+Si on note s un StopAreaType (NEPTUNE) et p le StopAreaType (NEPTUNE) de son niveau supérieur,
+la relation s'établit sur p au niveau du AreCentroid.containIn (NEPTUNE) qui fait apparaitre une référence s.
+
+Si on note S et P les structures StopAreaType équivalentes dans schéma décrit par cette XSD,
+c'est S qui référence P au niveau de S.parent.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="StopAreaShortDescriptionType">
+ <xs:annotation>
+ <xs:documentation>Structure équivalente la structure StopAreaType mais qui n'en décrit que les propriétés principales.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element name="Name" type="xs:string"/>
+ <xs:element name="AreaType" type="ChouetteAreaType"/>
+ <xs:element minOccurs="0" name="Longitude" type="LongitudeType"/>
+ <xs:element minOccurs="0" name="Latitude" type="LatitudeType"/>
+ <xs:element minOccurs="0" name="LongLatType" type="LongLatTypeType"/>
+ <xs:element minOccurs="0" name="ParentObjectId" type="TridentIdType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="StopAreaShortDescriptionsType">
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="StopAreaShortDescription"
+ type="StopAreaShortDescriptionType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="RouteType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au RouteType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string"/>
+ <xs:element minOccurs="0" name="PublishedName" type="xs:string"/>
+ <xs:element minOccurs="0" name="Number" type="xs:string"/>
+ <xs:element minOccurs="0" name="Direction" type="PTDirectionType"/>
+ <xs:element minOccurs="0" name="WayBackRouteId" type="TridentIdType"/>
+ <xs:element minOccurs="0" name="Comment" type="xs:string"/>
+ <xs:element minOccurs="0" name="WayBack" type="xs:string"/>
+ <xs:element name="LineShortDescription" type="LineShortDescriptionType"/>
+ <xs:element minOccurs="0" name="JourneyPatternShortDescriptions"
+ type="JourneyPatternShortDescriptionsType"/>
+ <xs:element minOccurs="0" name="VehicleJourneyObjectIds">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="VehicleJourneyObjectId" type="TridentIdType"
+ />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="StopAreaShortDescriptions"
+ type="StopAreaShortDescriptionsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="RouteShortDescriptionType">
+ <xs:annotation>
+ <xs:documentation>Structure équivalente la structure RouteType mais qui n'en décrit que les propriétés principales.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="name" type="xs:string"/>
+ <xs:element minOccurs="0" name="publishedName" type="xs:string"/>
+ <xs:element minOccurs="0" name="number" type="xs:string"/>
+ <xs:element minOccurs="0" name="direction" type="PTDirectionType"/>
+ <xs:element minOccurs="0" name="wayBack" type="xs:string"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="JourneyPatternType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au JourneyPatternType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string"/>
+ <xs:element minOccurs="0" name="PublishedName" type="xs:string"/>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string"/>
+ <xs:element minOccurs="0" name="Comment" type="xs:string"/>
+ <xs:element name="RouteShortDescription" type="RouteShortDescriptionType"/>
+ <xs:element minOccurs="0" name="VehicleJourneyObjectIds">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="VehicleJourneyObjectId" type="TridentIdType"
+ />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="StopAreaShortDescriptions"
+ type="StopAreaShortDescriptionsType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="JourneyPatternShortDescriptionType">
+ <xs:complexContent>
+ <xs:extension base="TridentShortDescription">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string"/>
+ <xs:element minOccurs="0" name="PublishedName" type="xs:string"/>
+ <xs:element minOccurs="0" name="RegistrationNumber" type="xs:string"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="JourneyPatternShortDescriptionsType">
+ <xs:sequence>
+ <xs:element name="JourneyPatternShortDescription" type="JourneyPatternShortDescriptionType"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ConnectionLinkType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au ConnectionLinkType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Name" type="xs:string"/>
+ <xs:element minOccurs="0" name="LinkDistance" type="xs:decimal"/>
+ <xs:element minOccurs="0" name="LinkType" type="ConnectionLinkTypeType"/>
+ <xs:element minOccurs="0" name="defaultDuration" type="xs:duration"/>
+ <xs:element minOccurs="0" name="FrequentTravellerDuration" type="xs:duration"/>
+ <xs:element minOccurs="0" name="OccasionalTravellerDuration" type="xs:duration"/>
+ <xs:element minOccurs="0" name="MobilityRestrictedTravellerDuration" type="xs:duration"/>
+ <xs:element minOccurs="0" name="MobilityRestrictedSuitability" type="xs:boolean"/>
+ <xs:element minOccurs="0" name="StairsAvailability" type="xs:boolean"/>
+ <xs:element minOccurs="0" name="LiftAvailability" type="xs:boolean"/>
+ <xs:element minOccurs="0" name="Comment" type="xs:string"/>
+ <xs:element minOccurs="1" name="StartOfLinkShortDescription"
+ type="StopAreaShortDescriptionType"/>
+ <xs:element name="EndOfLinkShortDescription" type="StopAreaShortDescriptionType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="TimeTableType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au TimetableType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Version" type="xs:string"/>
+ <xs:element minOccurs="0" name="Comment" type="xs:string"/>
+ <xs:element minOccurs="0" name="Dates">
+ <xs:complexType>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element name="Date" type="xs:date"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:sequence minOccurs="0">
+ <xs:element name="Monday" type="xs:boolean"/>
+ <xs:element name="Tuesday" type="xs:boolean"/>
+ <xs:element name="Wednesday" type="xs:boolean"/>
+ <xs:element name="Thursday" type="xs:boolean"/>
+ <xs:element name="Friday" type="xs:boolean"/>
+ <xs:element name="Saturday" type="xs:boolean"/>
+ <xs:element name="Sunday" type="xs:boolean"/>
+ <xs:element maxOccurs="1" minOccurs="1" name="Periods">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="Period">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="PeriodStart"/>
+ <xs:element name="PeriodEnd"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="VehicleJourneyType">
+ <xs:annotation>
+ <xs:documentation>Structure qui correspond au VehicleJourneyType NEPTUNE</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="TridentObjectType">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="PublishedJourneyName" type="xs:string"/>
+ <xs:element minOccurs="0" name="PublishedJourneyIdentifier" type="xs:string"/>
+ <xs:element minOccurs="0" name="TransportMode" type="TransportModeNameType"/>
+ <xs:element minOccurs="0" name="VehicleTypeIdentifier" type="xs:string"/>
+ <xs:element minOccurs="0" name="StatusValue" type="ServiceStatusValueType"/>
+ <xs:element minOccurs="0" name="Facility" type="xs:string"/>
+ <xs:element minOccurs="0" name="Number" type="xs:integer"/>
+ <xs:element minOccurs="0" name="Comment" type="xs:string"/>
+ <xs:element name="RouteShortDescription" type="RouteShortDescriptionType"/>
+ <xs:element name="JourneyPatternShortDescription"
+ type="JourneyPatternShortDescriptionType"/>
+ <xs:element minOccurs="0" name="TimeTableObjectIds">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="TimeTableObjectId" type="TridentIdType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element minOccurs="0" name="VehicleJourneyAtStops">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element maxOccurs="unbounded" name="VehicleJourneyAtStop">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="Order" type="xs:positiveInteger"/>
+ <xs:element name="StopAreaObjectId" type="TridentIdType"/>
+ <xs:element minOccurs="0" name="ConnectingServiceId" type="TridentIdType"/>
+ <xs:element minOccurs="0" name="ArrivalTime" type="xs:time"/>
+ <xs:element minOccurs="0" name="DepartureTime" type="xs:time"/>
+ <xs:element minOccurs="0" name="WaitingTime" type="xs:time"/>
+ <xs:element minOccurs="0" name="ElapseDuration" type="xs:duration"/>
+ <xs:element minOccurs="0" name="HeadwayFrequency" type="xs:duration"/>
+ <xs:element minOccurs="0" name="BoardingAlightingPossibility"
+ type="BoardingAlightingPossibilityType"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:simpleType name="TransportModeNameType">
+ <xs:annotation>
+ <xs:documentation>
+ Enumeration containing all the possible transport modes
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Air"/>
+ <xs:enumeration value="Train"/>
+ <xs:enumeration value="LongDistanceTrain"/>
+ <xs:enumeration value="LongDistanceTrain_2"/>
+ <xs:enumeration value="LocalTrain"/>
+ <xs:enumeration value="RapidTransit"/>
+ <xs:enumeration value="Metro"/>
+ <xs:enumeration value="Tramway"/>
+ <xs:enumeration value="Coach"/>
+ <xs:enumeration value="Bus"/>
+ <xs:enumeration value="Ferry"/>
+ <xs:enumeration value="Waterborne"/>
+ <xs:enumeration value="PrivateVehicle"/>
+ <xs:enumeration value="Walk"/>
+ <xs:enumeration value="Trolleybus"/>
+ <xs:enumeration value="Bicycle"/>
+ <xs:enumeration value="Shuttle"/>
+ <xs:enumeration value="Taxi"/>
+ <xs:enumeration value="VAL"/>
+ <xs:enumeration value="Other"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="TridentIdType">
+ <xs:annotation>
+ <xs:documentation>
+ Defines the way an TRIDENT ID has to be built:
+ {PeerID}:{Class name}:{Progressive integer}
+ For example: RATP:Event:12332 or ATAC:Line:9987
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\w|_)+:\w+:[0-9A-Za-z]+"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SourceTypeType">
+ <xs:annotation>
+ <xs:documentation>
+ Enumeration containing all the possible type of information
+source
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="AutomobileClubPatrol"/>
+ <xs:enumeration value="SpotterAircraft"/>
+ <xs:enumeration value="BreakdownService"/>
+ <xs:enumeration value="CameraObservation"/>
+ <xs:enumeration value="EmergencyServicePatrol"/>
+ <xs:enumeration value="FreightVehicleOperator"/>
+ <xs:enumeration value="InfraredMonitoringStation"/>
+ <xs:enumeration value="InductionLoopMonitoringStation"/>
+ <xs:enumeration value="MicrowaveMonitoringStation"/>
+ <xs:enumeration value="MobileTelephoneCaller"/>
+ <xs:enumeration value="OtherInformation"/>
+ <xs:enumeration value="OtherOfficialVehicle"/>
+ <xs:enumeration value="PolicePatrol"/>
+ <xs:enumeration value="PublicAndPrivateUtilities"/>
+ <xs:enumeration value="RoadAuthorities"/>
+ <xs:enumeration value="RegisteredMotoristObserver"/>
+ <xs:enumeration value="RoadsideTelephoneCaller"/>
+ <xs:enumeration value="TrafficMonitoringStation"/>
+ <xs:enumeration value="TransitOperator"/>
+ <xs:enumeration value="VideoProcessingMonitoringStation"/>
+ <xs:enumeration value="VehicleProbeMeasurement"/>
+ <xs:enumeration value="PublicTransport"/>
+ <xs:enumeration value="PassengerTransportCoordinatingAuthority"/>
+ <xs:enumeration value="TravelInformationServiceProvider"/>
+ <xs:enumeration value="TravelAgency"/>
+ <xs:enumeration value="IndividualSubjectOfTravelItinerary"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LongitudeType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="-180"/>
+ <xs:maxInclusive value="180"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LatitudeType">
+ <xs:restriction base="xs:decimal">
+ <xs:minInclusive value="-90"/>
+ <xs:maxInclusive value="90"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="LongLatTypeType">
+ <xs:annotation>
+ <xs:documentation>Type of geodesic reference</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="WGS84"/>
+ <xs:enumeration value="WGS92"/>
+ <xs:enumeration value="Standard"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ChouetteAreaType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Quay"/>
+ <xs:enumeration value="BoardingPosition"/>
+ <xs:enumeration value="CommercialStopPoint"/>
+ <xs:enumeration value="StopPlace"/>
+ <xs:enumeration value="ITL"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="PTDirectionType">
+ <xs:annotation>
+ <xs:documentation>
+ Enumeration containing all the possible directions on a PT Network
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="North"/>
+ <xs:enumeration value="NorthEast"/>
+ <xs:enumeration value="East"/>
+ <xs:enumeration value="SouthEast"/>
+ <xs:enumeration value="South"/>
+ <xs:enumeration value="SouthWest"/>
+ <xs:enumeration value="West"/>
+ <xs:enumeration value="NorthWest"/>
+ <xs:enumeration value="ClockWise"/>
+ <xs:enumeration value="CounterClockWise"/>
+ <xs:enumeration value="A"/>
+ <xs:enumeration value="R"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ConnectionLinkTypeType">
+ <xs:annotation>
+ <xs:documentation>Type of connection</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Underground"/>
+ <xs:enumeration value="Mixed"/>
+ <xs:enumeration value="Overground"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ServiceStatusValueType">
+ <xs:annotation>
+ <xs:documentation>
+ Enumeration containing all the possible status of a PT service
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Normal"/>
+ <xs:enumeration value="Delayed"/>
+ <xs:enumeration value="Cancelled"/>
+ <xs:enumeration value="Disrupted"/>
+ <xs:enumeration value="ReducedService"/>
+ <xs:enumeration value="IncreasedService"/>
+ <xs:enumeration value="Rerouted"/>
+ <xs:enumeration value="NotStopping"/>
+ <xs:enumeration value="Early"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="BoardingAlightingPossibilityType">
+ <xs:annotation>
+ <xs:documentation>
+ Enumeration containing all the ways to board or alight a bus
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="BoardAndAlight"/>
+ <xs:enumeration value="AlightOnly"/>
+ <xs:enumeration value="BoardOnly"/>
+ <xs:enumeration value="NeitherBoardOrAlight"/>
+ <xs:enumeration value="BoardAndAlightOnRequest"/>
+ <xs:enumeration value="AlightOnRequest"/>
+ <xs:enumeration value="BoardOnRequest"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>