dbinfrago / dbinfrago/openstation-docs
Breaking change (2027-04-01): NeTEx v2.0 alignment
- Dominant language
- No language data
- Stars
- 32
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
With our June 2026 deployment, OpenStation upgrades its delivery to NeTEx v2.0, which was released earlier this year. The upgrade itself is not a breaking change. However, in line with NeTEx v2.0, we are reworking how several elements are represented in the API today. As described in our [breaking change policy](https://github.com/dbinfrago/openstation-docs#stability-and-breaking-changes), we are therefore announcing the following **breaking changes, all of which will take effect on 2027-04-01**. One of them (the change to `Name`) is paired with an advisory introduction that already ships with the June 2026 deployment, so consumers can adapt early.
### `PrivateCode` → `privateCodes`
The standalone element `PrivateCode` is replaced by a new wrapper element `privateCodes`, which holds one or more `PrivateCode` children, each carrying a `type` attribute that indicates its naming scheme. Until 2027-04-01, we will provide both the old standalone `PrivateCode` and the new `privateCodes`.
Affected entities: all entities with a `PrivateCode` element.
#### Example (before)
```xml
10313316
```
#### Example (after)
```xml
10313316
```
### `keyList`: `EQ-ID` / `TP-ID` → `privateCodes`
The `EQ-ID` and `TP-ID` identifiers currently exposed as `KeyValue` entries in `keyList` move into the new `privateCodes` element as well, each with a `type` attribute indicating its namespace:
- `EQ-ID` → `type="https://daten.bahnhof.de/namespace/eq/"`
- `TP-ID` → `type="https://daten.bahnhof.de/namespace/tp/"`
Until 2027-04-01, both the old `keyList` entries and the new `privateCodes` entries will be provided. Only the `EQ-ID` and `TP-ID` keys are affected; any other `keyList` entries remain unchanged.
Affected entities: all entities with an `EQ-ID` and/or `TP-ID` entry in their `keyList`.
#### Example (before)
```xml
EQ-ID50012159
TP-ID00557-02
```
#### Example (after)
```xml
50012159
00557-02
```
### `Name` — multilingual support via `Text` sub-elements
NeTEx v2.0 introduces `Text` sub-elements on text-bearing elements like `Name` to support multiple language variants. We need this in OpenStation in order to publish station names in regional minority languages alongside the German default (e.g. Lower Sorbian for Cottbus Hbf).
**Advisory — already in effect since the June 2026 deployment (non-breaking).** Each `Name` now carries both its original inline text and one or more `Text` sub-elements, one per language variant. The dual form is intentionally backwards-compatible and validates against the NeTEx v2.0 XSD. Consumers reading `Name`'s text content continue to receive the German default unchanged. Note: very naive parsers that flatten all descendant text (e.g. via `textContent` / `innerText`) may now display concatenated values.
**Breaking — effective 2027-04-01.** The inline text content of `Name` will be removed; only the `Text` sub-elements remain. Consumers must read names from the `Text` sub-elements by then.
Affected entities: all entities with a `Name` element.
#### Example (before)
```xml
Cottbus Hbf
```
#### Example (after 2026-06, before 2027-04-01)
```xml
Cottbus HbfCottbus HbfChóśebuz gł.dw.
```
#### Example (after 2027-04-01)
```xml
Cottbus HbfChóśebuz gł.dw.
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.