PasjaGSM.pl
  Jesteś w: PasjaGSM.pl > Ginger > Format danych Ginger

flag:us English Format danych Ginger

Poniższy format jest wykorzystywany do generowania Ginger. Opis ten jest przeznaczony przede wszystkim dla firm przewozowych zainteresowanych wdrożeniem Ginger. Bardzo prosimy o kontakt przed rozpoczęciem prac wdrożeniowych (przygotowywaniem konwersji do poniższego formatu). Opis ten będzie poszerzona wraz z kolejnymi wdrożeniami.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="lines">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="line">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="direction">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="stop">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="legend">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<!-- Treść legendy - np. kurs tylko do Ronda Staroleka-->
<xs:attribute name="symbol" type="xs:string" use="required" />
<!-- Jednoznakowy symbol legendy - np. *-->
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="hour">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="minute">
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="legend">
<xs:complexType>
<xs:attribute name="symbol" type="xs:string" use="required" />
<!-- Symbol legendy, której treść powinna być określona dla tego przystanku w węźle legend - np. *-->
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="value" type="xs:unsignedByte" use="required" />
<!-- wartość minut odjazdu -->
<xs:attribute name="type" type="xs:string" use="required" />
<!-- Tryb - np. dni powszednie-->
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="value" type="xs:unsignedByte" use="required" />
<!-- Wartość godziny odjazdu-->
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="description" type="xs:string" />
<!-- Globalny opis dla całej linii (obecny np. w linii P i N21) - np.W nocy z poniedzialku na wtorek tramwaj nie kursuje-->
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<!-- Nazwa przystanku - np. Os. Lecha-->
<xs:attribute name="id" type="xs:string" use="required" />
<!-- Identyfikator przystanku OSLE-01; w Ginger 2.x wartosc ignorowana-->
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
<!-- Nazwa linii-->
<xs:attribute name="ignoreLastStop" type="xs:boolean" use="optional" />
<!-- Jeżeli ignoreLastStop ma wartość True wówczas rozkład jazdy ostatniego przystanku w każdej trasie jest ignorowany i jest wykorzystywany jedynie do wyświetlenia ekranu Kierunki-->
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="prefix" type="xs:string" use="optional" />
<!-- Prefiks który będzie dodawany do każdej linii w tym pliku, a także w opisie dostępnym w samej aplikacji, w menu O Ginger-->
<xs:attribute name="city" type="xs:string" use="optional" />
<!-- Nazwa miasta, widoczna w menu O Ginger-->
<xs:attribute name="validFrom" type="xs:string" use="optional" />
<!-- Data w formacie dd/MM/yyyy od której jest ważny rozkład jazdy, widoczna w menu O Ginger-->
</xs:complexType>
</xs:element>
</xs:schema>

Przy tworzeniu Ginger przyjmujemy następujące założenia:

  • Rozkład jazdy uwzględnia wszystkie przystanki (łącznie z ostatnim)
  • Dane są już w "czystej" postaci, tzn. Nazwy przystanków, opisy legend i linii są zunifikowane (nie różnią się między sobą wielkością liter, skrótami itp). Niespełnienie tych warunków powoduje wzrost wielkości aplikacji.
  • Symbole legend są generowane w locie przez Ginger, nie ma możliwości zdefiniowania ich w momencie tworzenia rozkładu (<legend symbol="p"></legend> nie oznacza że Ginger wyświetli symbol "p")
  • Kierunek trasy (drugi ekran w Ginger) to nazwa ostatniego przystanku danej trasy
  • Poprawne wartości atrybutu value elementu hour to 0 - 23
  • Każdy przystanek (element stop) posiada nazwę (name) oraz identyfikator (id). Wiele różnych przystanków może posiadać tą samą nazwę ale identyfikator powinien być globalnie unikalny. W obecnej chwili Ginger wykorzystuje identyfikatory do wyświetlania przesiadek, a nazwy do wyświetlania przybliżonych przesiadek.
  • W obecnej chwili Ginger ignoruje legendy jeżeli te pojawiły się w trakcie trasy (nie zostały zdefiniowane na pierwszym przystanku). Nie dotyczy to nowych odjazdów, które pojawiły się w trakcie trasy.
  • W obecnej chwili Ginger może obsługiwać
    • do 2048 przystanków o różnych nazwach
    • do 31 przystanków o tej samej nazwie ale różnych identyfikatorach
    • do 65535 tekstów legend i opisów linii

  • Atrybut ignoreLastStop pozwala określić że rozkład jazdy dla ostatniego przystanku jest ignorowany. Ma on zastosowanie gdy nie dysponujemy rozkładem dla przystanku końcowego. Jest wykorzystywany wówczas jedynie w ekranie Kierunki Ginger.
  • Historia zmian:

    • 3/01/2007 - dodane atrybuty city i validFrom do elementu lines
    • 3/18/2007 - dodane atrybuty ignoreLastStop do elementu line