Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions examples/siri_exm_SX/exm_situationExchange_responsewithaudio.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- (C) Copyright 2005-2012 CEN SIRI -->
<Siri xmlns="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:d2="http://datex2.eu/schema/2_0RC1/2_0" version="2.0" xsi:schemaLocation="http://www.siri.org.uk/siri ../../xsd/siri.xsd">
<ServiceDelivery>
<!--=======HEADER================================================== -->
<ResponseTimestamp>2026-05-17T16:00:26+01:00</ResponseTimestamp>
<ProducerRef>GT7</ProducerRef>
<Status>true</Status>
<MoreData>false</MoreData>
<!--=======PAYLOAD============================================== -->
<SituationExchangeDelivery version="2.0">
<ResponseTimestamp>2026-05-17T16:00:26+01:00</ResponseTimestamp>
<Situations>
<PtSituationElement>
<CreationTime>2026-05-17T16:00:00.0Z</CreationTime>
<CountryRef>fr</CountryRef>
<ParticipantRef>GT7</ParticipantRef>
<SituationNumber>123456</SituationNumber>
<Version>0</Version>
<References>
<RelatedToRef>
<CreationTime>2026-05-17T16:00:00</CreationTime>
<CountryRef>fr</CountryRef>
<ParticipantRef>GT7</ParticipantRef>
<SituationNumber>123456</SituationNumber>
<Version>0</Version>
</RelatedToRef>
</References>
<Source>
<Country>fr</Country>
<SourceType>directReport</SourceType>
<AgentReference>987654</AgentReference>
<TimeOfCommunication>2026-05-17T15:55:00.0Z</TimeOfCommunication>
</Source>
<Verification>verified</Verification>
<Progress>open</Progress>
<QualityIndex>certain</QualityIndex>
<ValidityPeriod>
<StartTime>2026-05-17T16:00:00.0Z</StartTime>
<EndTime>2026-05-17T17:30:00.0Z</EndTime>
</ValidityPeriod>
<AlertCause>unattendedBag</AlertCause>
<Severity>slight</Severity>
<Priority>5</Priority>
<Audience>public</Audience>
<ReportType>point</ReportType>
<Summary xml:lang="fr">Bagage oublié à la station Rome</Summary>
<Description xml:lang="fr">Bagage oublié à la station Rome. Service temporairement interrompu.</Description>
<Affects>
<Operators>
<AllOperators/>
</Operators>
<StopPoints>
<AffectedStopPoint>
<StopPointRef>ROM123SSP</StopPointRef>
<StopPointName xml:lang="fr">Rome</StopPointName>
</AffectedStopPoint>
</StopPoints>
<StopPlaces>
<AffectedStopPlace>
<StopPlaceRef>ROM123SP</StopPlaceRef>
<StopPlaceName xml:lang="FR">Rome</StopPlaceName>
<StopPlaceType>metroStation</StopPlaceType>
</AffectedStopPlace>
</StopPlaces>
</Affects>
<Consequences>
<Consequence>
<Period>
<StartTime>2026-05-17T16:00:00.0Z</StartTime>
<EndTime>2026-05-17T17:30:00.0Z</EndTime>
</Period>
<Condition>disruption</Condition>
<Severity>slight</Severity>
<Blocking>
<JourneyPlanner>true</JourneyPlanner>
<RealTime>true</RealTime>
</Blocking>
<Boarding>
<ArrivalBoardingActivity>noAlighting</ArrivalBoardingActivity>
<DepartureBoardingActivity>noBoarding</DepartureBoardingActivity>
</Boarding>
</Consequence>
</Consequences>
<PublishingActions>
<PublishToWebAction>
<ActionData>
<Type>ShortText</Type>
<Prompt xml:lang="fr">Babage oublié à Rome. Service interrompu jusqu'à 17h30.</Prompt>
<Prompt xml:lang="en">Unattended bag at Rome station. Disruption of service until 17:30.</Prompt>
</ActionData>
<Incidents>true</Incidents>
<HomePage>true</HomePage>
<Ticker>false</Ticker>
</PublishToWebAction>
<PublishToMobileAction>
<ActionData>
<Type>ShortText</Type>
<Prompt xml:lang="fr">Babage oublié à Rome. Service interrompu jusqu'à 17h30.</Prompt>
<Prompt xml:lang="en">Unattended bag at Rome station. Disruption of service until 17:30.</Prompt>
</ActionData>
<Incidents>true</Incidents>
<HomePage>false</HomePage>
</PublishToMobileAction>
<PublishToDisplayAction>
<ActionData>
<Type>ShortText</Type>
<Prompt xml:lang="fr">Babage oublié à Rome. Service interrompu jusqu'à 17h30.</Prompt>
<Prompt xml:lang="en">Unattended bag at Rome station. Disruption of service until 17:30.</Prompt>
</ActionData>
<OnPlace>true</OnPlace>
</PublishToDisplayAction>
<PublishToAudioAction>
<ActionData>
<Type>RecordedMessage</Type>
</ActionData>
<Url type="audio/mpeg" xml:lang="fr">http://mediabank.aom.fr/audio/unattended_bag_fr.mp3</Url>
<Url type="audio/mpeg" xml:lang="en">http://mediabank.aom.fr/audio/unattended_bag_en.mp3</Url>
</PublishToAudioAction>
Comment on lines +114 to +119

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My proposal would still be to have the Url inside the ActionData. So it would look like analogue to the Prompts.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But, then it means we add it to all the Actions in ActionsGroup that are based on ParametrisedActionStructure. I am not against it, but wouldn't it be redundant for PublishToWebAction or PublishToMobileAction?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it would support publishing other media like images too. Hence I thought that was your goal for the République française!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@skinkie, I addressed the comment in PR #221

If we can agree on that, I will rework this one to streamline PublishToAudioAction to attributes that are specific to an audio message.

</PublishingActions>
</PtSituationElement>
</Situations>
</SituationExchangeDelivery>
</ServiceDelivery>
</Siri>
22 changes: 22 additions & 0 deletions xsd/siri_model/siri_situationActions.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@ Rail transport, Roads and road transport
<xsd:element ref="PublishToTvAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="PublishToAlertsAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="PublishToDisplayAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="PublishToAudioAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="ManualAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="NotifyByEmailAction" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="NotifyBySmsAction" minOccurs="0" maxOccurs="unbounded"/>
Expand Down Expand Up @@ -399,6 +400,27 @@ Rail transport, Roads and road transport
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="PublishToAudioAction" type="PublishToAudioActionStructure">
<xsd:annotation>
<xsd:documentation>Action: Publish SITUATION via Audio messages.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="PublishToAudioActionStructure">
<xsd:annotation>
<xsd:documentation>Type for Action Publish SITUATION via Audio messages.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
Comment thread
TuThoThai marked this conversation as resolved.
<xsd:extension base="ParameterisedActionStructure">
<xsd:sequence>
<xsd:element name="Url" type="AudioURI" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Url for the pre-recorded message. If there is no language attribute specified, there is the assumption that the language is multilingual. Producers must change the URL whenever they want a different message to be broadcasted (i.e., situation has changed).</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- ======================================================================= -->
<xsd:element name="ManualAction">
<xsd:annotation>
Expand Down
19 changes: 19 additions & 0 deletions xsd/siri_utility/siri_types.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,23 @@ The value range is normally 0-100, but could in some circumstances go beyond 100
<xsd:minInclusive value="0"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="AudioURI">
<xsd:annotation>
<xsd:documentation>Allow the addition of attributes in an URL to add further details about the pre-recorded audio messages that the link points to.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:anyURI">
<xsd:attribute name="type" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>Specifies the MIME media type of the file carrying the pre-recorded message, optionally including a codecs parameter.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute ref="xml:lang" use="optional">
<xsd:annotation>
<xsd:documentation>If the pre-recorded message is in a single language, specifies which one.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>