In the SIRI definition we have elements like DescriptionText which have maxOccurs unbounded. I think this is a problem. What this technically allows is creating of multiple DescriptionTexts without specifying how it should be combined. I think the unbounding is used to facilitate translations. Hence it makes sense to have multiple DescriptionTexts but only if they have a different language. I think we could enforce this with a local unique constraint if a language is provided but not when the xml:lang element is empty.
<xsd:element name="DescriptionText" type="DefaultedTextStructure" maxOccurs="unbounded">
My suggestion for SIRI 3.0: Follow the NeTEx 2.0 pattern, where we would get a single DescriptionText like:
<DescriptionText>
<Text lang="nl">Hallo Wereld</Text>
<Text lang="en">Hello World</Text>
</DescriptionText>
If we would then have more DescriptionContent like DescriptionAudio we would have the content itself bundled.
In the SIRI definition we have elements like DescriptionText which have maxOccurs unbounded. I think this is a problem. What this technically allows is creating of multiple DescriptionTexts without specifying how it should be combined. I think the unbounding is used to facilitate translations. Hence it makes sense to have multiple DescriptionTexts but only if they have a different language. I think we could enforce this with a local unique constraint if a language is provided but not when the xml:lang element is empty.
My suggestion for SIRI 3.0: Follow the NeTEx 2.0 pattern, where we would get a single DescriptionText like:
If we would then have more DescriptionContent like DescriptionAudio we would have the content itself bundled.