diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml
index e3b48d3f..9f1f317c 100644
--- a/.github/workflows/push.yml
+++ b/.github/workflows/push.yml
@@ -3,6 +3,7 @@ on:
push:
branches:
- main
+ - upgrade_netex_2_0
pull_request:
branches:
- main
@@ -27,7 +28,7 @@ jobs:
wget https://raw.githubusercontent.com/entur/ror-maven-settings/master/.m2/settings_release_maven_central.xml -O .github/workflows/settings.xml
- uses: actions/setup-java@v6.0.1
with:
- java-version: 17
+ java-version: 21
distribution: liberica
- name: Cache Maven dependencies
uses: actions/cache@v5.1.0
@@ -69,4 +70,13 @@ jobs:
secrets: inherit
with:
push_to_repo: true
- snapshot: false
\ No newline at end of file
+ snapshot: false
+ publish-snapshot:
+ if: github.repository_owner == 'entur' && github.event_name == 'push' && github.ref == 'refs/heads/upgrade_netex_2_0'
+ needs: [maven-package]
+ name: Publish snapshot to maven central
+ uses: entur/gha-maven-central/.github/workflows/maven-publish.yml@v1
+ secrets: inherit
+ with:
+ push_to_repo: true
+ snapshot: true
\ No newline at end of file
diff --git a/CLAUDE.md b/CLAUDE.md
index 683d6f74..b50ce0f0 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -28,7 +28,7 @@ mvn prettier:write
mvn validate -P prettierCheck
```
-Java 17 is required. The project uses prettier-java for code formatting (runs in the `validate` phase by default). Use `-Dprettier.skip=true` to skip formatting during development.
+Java 21 is required. The project uses prettier-java for code formatting (runs in the `validate` phase by default). Use `-Dprettier.skip=true` to skip formatting during development.
## Architecture
diff --git a/pom.xml b/pom.xml
index 6c950523..10b336b4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.entur
netex-validator-java
- 12.0.12-SNAPSHOT
+ 13.0.0-SNAPSHOT
netex-validator-java
Library for validating NeTEx datasets against the Nordic NeTEx Profile.
@@ -53,10 +53,10 @@
UTF-8
- 17
+ 21
- 2.0.16.2
- 4.0.14
+ 3.0.0-SNAPSHOT
+ 5.0.0-SNAPSHOT
12.10
33.0
2.7
@@ -97,8 +97,8 @@
- 17
- 17
+ 21
+ 21
@@ -110,8 +110,8 @@
org.entur
- netex-java-model
- ${netex-java-model.version}
+ netex2-java-model
+ ${netex2-java-model.version}
org.entur
@@ -481,6 +481,16 @@
Open Source Geospatial Foundation Repository
https://repo.osgeo.org/repository/release/
+
+ maven-snapshots
+ https://central.sonatype.com/repository/maven-snapshots
+
+ false
+
+
+ true
+
+
@@ -531,7 +541,7 @@
- 17
+ 21
diff --git a/src/main/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContext.java b/src/main/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContext.java
index 345d2cf4..4d84a012 100644
--- a/src/main/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContext.java
+++ b/src/main/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContext.java
@@ -9,7 +9,7 @@
import org.entur.netex.validation.validator.id.IdVersion;
import org.entur.netex.validation.validator.jaxb.support.DatedServiceJourneyUtils;
import org.entur.netex.validation.validator.model.*;
-import org.rutebanken.netex.model.*;
+import org.entur.netex2.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -332,8 +332,7 @@ public Collection serviceCalendarFrames() {
*/
@Nullable
public TransportModeAndSubMode transportModeAndSubMode(ServiceJourney serviceJourney) {
- AllVehicleModesOfTransportEnumeration transportMode =
- serviceJourney.getTransportMode();
+ AllPublicTransportModesEnumeration transportMode = serviceJourney.getTransportMode();
TransportSubmodeStructure subModeStructure = serviceJourney.getTransportSubmode();
diff --git a/src/main/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepository.java b/src/main/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepository.java
index 12111efa..1853ed6d 100644
--- a/src/main/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepository.java
+++ b/src/main/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepository.java
@@ -2,12 +2,13 @@
import javax.annotation.Nullable;
import org.entur.netex.index.api.NetexEntitiesIndex;
+import org.entur.netex.validation.validator.model.MultilingualStringValue;
import org.entur.netex.validation.validator.model.QuayCoordinates;
import org.entur.netex.validation.validator.model.QuayId;
import org.entur.netex.validation.validator.model.StopPlaceId;
import org.entur.netex.validation.validator.model.TransportModeAndSubMode;
-import org.rutebanken.netex.model.Quay;
-import org.rutebanken.netex.model.StopPlace;
+import org.entur.netex2.model.Quay;
+import org.entur.netex2.model.StopPlace;
/**
* Stop place repository that retrieves stop place data from the SiteFrame in the current file.
@@ -69,10 +70,8 @@ public String getStopPlaceNameForQuayId(QuayId quayId) {
if (stopPlaceId == null) {
return null;
}
- return netexEntitiesIndex
- .getStopPlaceIndex()
- .getLatestVersion(stopPlaceId)
- .getName()
- .getValue();
+ return MultilingualStringValue.of(
+ netexEntitiesIndex.getStopPlaceIndex().getLatestVersion(stopPlaceId).getName()
+ );
}
}
diff --git a/src/main/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtils.java b/src/main/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtils.java
index d35a0be9..7d603cff 100644
--- a/src/main/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtils.java
+++ b/src/main/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtils.java
@@ -2,8 +2,8 @@
import jakarta.xml.bind.JAXBElement;
import javax.annotation.Nullable;
-import org.rutebanken.netex.model.DatedServiceJourney;
-import org.rutebanken.netex.model.VehicleJourneyRefStructure;
+import org.entur.netex2.model.DatedServiceJourney;
+import org.entur.netex2.model.VehicleJourneyRefStructure;
public class DatedServiceJourneyUtils {
@@ -16,6 +16,9 @@ private DatedServiceJourneyUtils() {}
public static String originalDatedServiceJourneyRef(
DatedServiceJourney datedServiceJourney
) {
+ if (datedServiceJourney.getReplacedJourneys() == null) {
+ return null;
+ }
return datedServiceJourney
.getReplacedJourneys()
.getDatedVehicleJourneyRefOrNormalDatedVehicleJourneyRef()
diff --git a/src/main/java/org/entur/netex/validation/validator/model/DayTypeId.java b/src/main/java/org/entur/netex/validation/validator/model/DayTypeId.java
index 4b30c812..c3613ead 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/DayTypeId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/DayTypeId.java
@@ -5,7 +5,7 @@
import java.util.Objects;
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.*;
+import org.entur.netex2.model.*;
/**
* The NeTEx id of DayType.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/FromToScheduledStopPointId.java b/src/main/java/org/entur/netex/validation/validator/model/FromToScheduledStopPointId.java
index 4280be84..7d1693e3 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/FromToScheduledStopPointId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/FromToScheduledStopPointId.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.model;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.ServiceLink;
+import org.entur.netex2.model.ServiceLink;
/**
* The pair of ScheduledStopPoint ids representing the "from" and "to" ends of a ServiceLink.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/MultilingualStringValue.java b/src/main/java/org/entur/netex/validation/validator/model/MultilingualStringValue.java
new file mode 100644
index 00000000..0ca638f1
--- /dev/null
+++ b/src/main/java/org/entur/netex/validation/validator/model/MultilingualStringValue.java
@@ -0,0 +1,35 @@
+package org.entur.netex.validation.validator.model;
+
+import java.io.Serializable;
+import java.util.List;
+import javax.annotation.Nullable;
+import org.entur.netex2.model.MultilingualString;
+
+/**
+ * Helper for extracting string values from NeTEx MultilingualString.
+ * In NeTEx 2.0 (netex2-java-model 3.x), MultilingualString uses a mixed content model
+ * where text is stored in getContent() as a List of Serializable objects,
+ * replacing the previous getValue() method.
+ */
+public final class MultilingualStringValue {
+
+ private MultilingualStringValue() {}
+
+ @Nullable
+ public static String of(@Nullable MultilingualString multilingualString) {
+ if (multilingualString == null) {
+ return null;
+ }
+ List content = multilingualString.getContent();
+ if (content == null || content.isEmpty()) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ for (Serializable item : content) {
+ if (item instanceof String s) {
+ sb.append(s);
+ }
+ }
+ return sb.isEmpty() ? null : sb.toString();
+ }
+}
diff --git a/src/main/java/org/entur/netex/validation/validator/model/OperatingDayId.java b/src/main/java/org/entur/netex/validation/validator/model/OperatingDayId.java
index 1c6f6403..767d5e53 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/OperatingDayId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/OperatingDayId.java
@@ -4,7 +4,7 @@
import java.util.Optional;
import java.util.function.Function;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.*;
+import org.entur.netex2.model.*;
/**
* The NeTEx id of OperatingDay.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/QuayCoordinates.java b/src/main/java/org/entur/netex/validation/validator/model/QuayCoordinates.java
index 25f08b09..2c44dee3 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/QuayCoordinates.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/QuayCoordinates.java
@@ -1,10 +1,10 @@
package org.entur.netex.validation.validator.model;
import org.entur.netex.validation.exception.NetexValidationException;
+import org.entur.netex2.model.LocationStructure;
+import org.entur.netex2.model.Quay;
+import org.entur.netex2.model.StopPlace;
import org.locationtech.jts.geom.Coordinate;
-import org.rutebanken.netex.model.LocationStructure;
-import org.rutebanken.netex.model.Quay;
-import org.rutebanken.netex.model.StopPlace;
/**
* Latitude and longitude of a NeTEx Quay.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/QuayId.java b/src/main/java/org/entur/netex/validation/validator/model/QuayId.java
index ec70413b..e5d8535d 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/QuayId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/QuayId.java
@@ -3,8 +3,8 @@
import java.util.Objects;
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.Quay;
-import org.rutebanken.netex.model.QuayRefStructure;
+import org.entur.netex2.model.Quay;
+import org.entur.netex2.model.QuayRefStructure;
/**
* The NeTEx id of Quay.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/ScheduledStopPointId.java b/src/main/java/org/entur/netex/validation/validator/model/ScheduledStopPointId.java
index 8b3f8aa1..06349c7d 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/ScheduledStopPointId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/ScheduledStopPointId.java
@@ -2,8 +2,8 @@
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.ScheduledStopPointRefStructure;
-import org.rutebanken.netex.model.StopPointInJourneyPattern;
+import org.entur.netex2.model.ScheduledStopPointRefStructure;
+import org.entur.netex2.model.StopPointInJourneyPattern;
/**
* The NeTEx id od a ScheduledStopPoint.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyId.java b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyId.java
index 32af7542..169861ef 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyId.java
@@ -5,8 +5,8 @@
import net.sf.saxon.s9api.XdmItem;
import net.sf.saxon.s9api.streams.XdmStream;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.ServiceJourney;
-import org.rutebanken.netex.model.VehicleJourneyRefStructure;
+import org.entur.netex2.model.ServiceJourney;
+import org.entur.netex2.model.VehicleJourneyRefStructure;
public record ServiceJourneyId(String id) {
public ServiceJourneyId {
diff --git a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyInterchangeInfo.java b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyInterchangeInfo.java
index 7129d800..72e9ca12 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyInterchangeInfo.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyInterchangeInfo.java
@@ -2,8 +2,8 @@
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.ServiceJourneyInterchange;
-import org.rutebanken.netex.model.VersionOfObjectRefStructure;
+import org.entur.netex2.model.ServiceJourneyInterchange;
+import org.entur.netex2.model.VersionOfObjectRefStructure;
public record ServiceJourneyInterchangeInfo(
String filename,
diff --git a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyStop.java b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyStop.java
index 5552d5a0..049d3398 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyStop.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/ServiceJourneyStop.java
@@ -3,7 +3,7 @@
import java.math.BigInteger;
import java.time.LocalTime;
import java.util.Optional;
-import org.rutebanken.netex.model.TimetabledPassingTime;
+import org.entur.netex2.model.TimetabledPassingTime;
/**
* The NeTEx id of ScheduledStopPoint.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/ServiceLinkId.java b/src/main/java/org/entur/netex/validation/validator/model/ServiceLinkId.java
index 20fc01d7..03f361e2 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/ServiceLinkId.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/ServiceLinkId.java
@@ -2,9 +2,9 @@
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.LinkInJourneyPattern;
-import org.rutebanken.netex.model.ServiceLink;
-import org.rutebanken.netex.model.VersionOfObjectRefStructure;
+import org.entur.netex2.model.LinkInJourneyPattern;
+import org.entur.netex2.model.ServiceLink;
+import org.entur.netex2.model.VersionOfObjectRefStructure;
/**
* The NeTEx id of a ServiceLink.
diff --git a/src/main/java/org/entur/netex/validation/validator/model/SimpleLine.java b/src/main/java/org/entur/netex/validation/validator/model/SimpleLine.java
index b538640e..707f604c 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/SimpleLine.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/SimpleLine.java
@@ -3,9 +3,8 @@
import java.util.Objects;
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.FlexibleLine;
-import org.rutebanken.netex.model.Line;
-import org.rutebanken.netex.model.MultilingualString;
+import org.entur.netex2.model.FlexibleLine;
+import org.entur.netex2.model.Line;
/**
* Light-way representation of a NeTEx Line.
@@ -21,7 +20,7 @@ public record SimpleLine(String lineId, String lineName, String fileName) {
public static SimpleLine of(Line line, String fileName) {
return new SimpleLine(
line.getId(),
- Optional.ofNullable(line.getName()).map(MultilingualString::getValue).orElse(null),
+ Optional.ofNullable(line.getName()).map(MultilingualStringValue::of).orElse(null),
fileName
);
}
@@ -31,7 +30,7 @@ public static SimpleLine of(FlexibleLine flexibleLine, String fileName) {
flexibleLine.getId(),
Optional
.ofNullable(flexibleLine.getName())
- .map(MultilingualString::getValue)
+ .map(MultilingualStringValue::of)
.orElse(null),
fileName
);
diff --git a/src/main/java/org/entur/netex/validation/validator/model/TransportModeAndSubMode.java b/src/main/java/org/entur/netex/validation/validator/model/TransportModeAndSubMode.java
index e510e5c8..d77647df 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/TransportModeAndSubMode.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/TransportModeAndSubMode.java
@@ -2,15 +2,15 @@
import java.util.Objects;
import javax.annotation.Nullable;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.StopPlace;
-import org.rutebanken.netex.model.TransportSubmodeStructure;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.StopPlace;
+import org.entur.netex2.model.TransportSubmodeStructure;
/**
* A pair of mode and sub-mode.
*/
public record TransportModeAndSubMode(
- AllVehicleModesOfTransportEnumeration mode,
+ AllPublicTransportModesEnumeration mode,
TransportSubMode subMode
) {
public TransportModeAndSubMode {
@@ -25,7 +25,7 @@ public record TransportModeAndSubMode(
*/
@Nullable
public static TransportModeAndSubMode of(StopPlace stopPlace) {
- AllVehicleModesOfTransportEnumeration transportMode = stopPlace.getTransportMode();
+ AllPublicTransportModesEnumeration transportMode = stopPlace.getTransportMode();
if (transportMode == null) {
return null;
}
@@ -42,7 +42,7 @@ public static TransportModeAndSubMode of(StopPlace stopPlace) {
*/
@Nullable
public static TransportModeAndSubMode of(
- AllVehicleModesOfTransportEnumeration transportMode,
+ AllPublicTransportModesEnumeration transportMode,
TransportSubmodeStructure submodeStructure
) {
if (transportMode == null) {
diff --git a/src/main/java/org/entur/netex/validation/validator/model/TransportSubMode.java b/src/main/java/org/entur/netex/validation/validator/model/TransportSubMode.java
index a72af12a..167e2443 100644
--- a/src/main/java/org/entur/netex/validation/validator/model/TransportSubMode.java
+++ b/src/main/java/org/entur/netex/validation/validator/model/TransportSubMode.java
@@ -3,9 +3,9 @@
import java.util.Objects;
import java.util.Optional;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.StopPlace;
-import org.rutebanken.netex.model.TransportSubmodeStructure;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.StopPlace;
+import org.entur.netex2.model.TransportSubmodeStructure;
/**
* A NeTEx transport sub-mode.
@@ -64,7 +64,7 @@ public static Optional of(StopPlace stopPlace) {
}
public static Optional of(
- AllVehicleModesOfTransportEnumeration transportMode,
+ AllPublicTransportModesEnumeration transportMode,
TransportSubmodeStructure subModeStructure
) {
if (transportMode == null || subModeStructure == null) {
diff --git a/src/main/java/org/entur/netex/validation/validator/schema/NetexSchemaValidator.java b/src/main/java/org/entur/netex/validation/validator/schema/NetexSchemaValidator.java
index 03001b0e..7862e06f 100644
--- a/src/main/java/org/entur/netex/validation/validator/schema/NetexSchemaValidator.java
+++ b/src/main/java/org/entur/netex/validation/validator/schema/NetexSchemaValidator.java
@@ -10,7 +10,7 @@
import org.entur.netex.validation.exception.NetexValidationException;
import org.entur.netex.validation.validator.*;
import org.entur.netex.validation.xml.NetexSchemaRepository;
-import org.rutebanken.netex.validation.NeTExValidator;
+import org.entur.netex2.validation.NeTExValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.ErrorHandler;
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessProperty.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessProperty.java
index 4fde797e..8ef0b724 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessProperty.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessProperty.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.BookingAccessEnumeration;
+import org.entur.netex2.model.BookingAccessEnumeration;
/**
* Validate the booking access properties against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingMethodProperty.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingMethodProperty.java
index c571092b..6c9700e4 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingMethodProperty.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingMethodProperty.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.BookingMethodEnumeration;
+import org.entur.netex2.model.BookingMethodEnumeration;
/**
* Validate the booking method properties against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingWhenProperty.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingWhenProperty.java
index 0393cb29..cb7074a7 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingWhenProperty.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingWhenProperty.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.PurchaseWhenEnumeration;
+import org.entur.netex2.model.PurchaseWhenEnumeration;
/**
* Validate the "booking when" properties against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBuyWhenProperty.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBuyWhenProperty.java
index aaec0c87..828e0186 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBuyWhenProperty.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBuyWhenProperty.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.PurchaseMomentEnumeration;
+import org.entur.netex2.model.PurchaseMomentEnumeration;
/**
* Validate the "buy when" access properties against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleLineType.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleLineType.java
index 84a012d4..376a9e82 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleLineType.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleLineType.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.FlexibleLineTypeEnumeration;
+import org.entur.netex2.model.FlexibleLineTypeEnumeration;
/**
* Validate the flexible line type against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleServiceType.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleServiceType.java
index 7f0d845d..a9d2d3b8 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleServiceType.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedFlexibleServiceType.java
@@ -1,7 +1,7 @@
package org.entur.netex.validation.validator.xpath.rules;
import org.entur.netex.validation.validator.Severity;
-import org.rutebanken.netex.model.FlexibleServiceEnumeration;
+import org.entur.netex2.model.FlexibleServiceEnumeration;
/**
* Validate the flexible service type against the Nordic NeTEx profile.
diff --git a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedTransportSubMode.java b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedTransportSubMode.java
index 981f704e..ada1a49d 100644
--- a/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedTransportSubMode.java
+++ b/src/main/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedTransportSubMode.java
@@ -1,16 +1,16 @@
package org.entur.netex.validation.validator.xpath.rules;
-import static org.rutebanken.netex.model.AirSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.BusSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.CoachSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.FunicularSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.MetroSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.RailSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.SnowAndIceSubmodeEnumeration.SNOW_COACH;
-import static org.rutebanken.netex.model.TaxiSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.TelecabinSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.TramSubmodeEnumeration.*;
-import static org.rutebanken.netex.model.WaterSubmodeEnumeration.*;
+import static org.entur.netex2.model.AirSubmodeEnumeration.*;
+import static org.entur.netex2.model.BusSubmodeEnumeration.*;
+import static org.entur.netex2.model.CoachSubmodeEnumeration.*;
+import static org.entur.netex2.model.FunicularSubmodeEnumeration.*;
+import static org.entur.netex2.model.MetroSubmodeEnumeration.*;
+import static org.entur.netex2.model.RailSubmodeEnumeration.*;
+import static org.entur.netex2.model.SnowAndIceSubmodeEnumeration.SNOW_COACH;
+import static org.entur.netex2.model.TaxiSubmodeEnumeration.*;
+import static org.entur.netex2.model.TelecabinSubmodeEnumeration.*;
+import static org.entur.netex2.model.TramSubmodeEnumeration.*;
+import static org.entur.netex2.model.WaterSubmodeEnumeration.*;
import net.sf.saxon.s9api.XdmNode;
import org.entur.netex.validation.validator.Severity;
diff --git a/src/main/java/org/entur/netex/validation/xml/NetexSchemaRepository.java b/src/main/java/org/entur/netex/validation/xml/NetexSchemaRepository.java
index 4689fbcb..82848052 100644
--- a/src/main/java/org/entur/netex/validation/xml/NetexSchemaRepository.java
+++ b/src/main/java/org/entur/netex/validation/xml/NetexSchemaRepository.java
@@ -5,7 +5,7 @@
import java.util.concurrent.ConcurrentHashMap;
import javax.xml.validation.Schema;
import org.entur.netex.validation.exception.NetexValidationException;
-import org.rutebanken.netex.validation.NeTExValidator;
+import org.entur.netex2.validation.NeTExValidator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
@@ -44,7 +44,7 @@ private static Schema createNetexSchema(NeTExValidator.NetexVersion version) {
version
);
try {
- return new NeTExValidator(version).getSchema();
+ return NeTExValidator.getNeTExValidator(version).getSchema();
} catch (IOException | SAXException e) {
throw new NetexValidationException("Could not create NeTEx schema", e);
}
@@ -84,6 +84,8 @@ public static NeTExValidator.NetexVersion detectNetexSchemaVersion(byte[] conten
return NeTExValidator.NetexVersion.v1_15;
case "1.16":
return NeTExValidator.NetexVersion.v1_16;
+ case "2.0":
+ return NeTExValidator.NetexVersion.v2_0;
default:
}
}
diff --git a/src/test/java/org/entur/netex/validation/test/jaxb/support/JAXBUtils.java b/src/test/java/org/entur/netex/validation/test/jaxb/support/JAXBUtils.java
index 1e41948d..b198c50e 100644
--- a/src/test/java/org/entur/netex/validation/test/jaxb/support/JAXBUtils.java
+++ b/src/test/java/org/entur/netex/validation/test/jaxb/support/JAXBUtils.java
@@ -3,7 +3,7 @@
import jakarta.xml.bind.JAXBElement;
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
-import org.rutebanken.netex.model.VersionOfObjectRefStructure;
+import org.entur.netex2.model.VersionOfObjectRefStructure;
/**
* Utility functions to map JAXB objects.
diff --git a/src/test/java/org/entur/netex/validation/validator/demo/DemoJAXBValidator.java b/src/test/java/org/entur/netex/validation/validator/demo/DemoJAXBValidator.java
index 93c9ebef..96663716 100644
--- a/src/test/java/org/entur/netex/validation/validator/demo/DemoJAXBValidator.java
+++ b/src/test/java/org/entur/netex/validation/validator/demo/DemoJAXBValidator.java
@@ -15,7 +15,7 @@
import org.entur.netex.validation.validator.jaxb.SiteFrameStopPlaceRepository;
import org.entur.netex.validation.validator.schema.NetexSchemaValidator;
import org.entur.netex.validation.xml.NetexXMLParser;
-import org.rutebanken.netex.model.ServiceJourney;
+import org.entur.netex2.model.ServiceJourney;
/**
* Minimal executable class that demonstrates how to run a validation with JAXB validators.
diff --git a/src/test/java/org/entur/netex/validation/validator/jaxb/DefaultCommonDataRepositoryTest.java b/src/test/java/org/entur/netex/validation/validator/jaxb/DefaultCommonDataRepositoryTest.java
index d76b52ba..0650c57e 100644
--- a/src/test/java/org/entur/netex/validation/validator/jaxb/DefaultCommonDataRepositoryTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/jaxb/DefaultCommonDataRepositoryTest.java
@@ -10,11 +10,11 @@
import org.entur.netex.validation.validator.model.QuayId;
import org.entur.netex.validation.validator.model.ScheduledStopPointId;
import org.entur.netex.validation.validator.model.ServiceLinkId;
+import org.entur.netex2.model.PassengerStopAssignment;
+import org.entur.netex2.model.QuayRefStructure;
+import org.entur.netex2.model.ScheduledStopPointRefStructure;
+import org.entur.netex2.model.ServiceLink;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.PassengerStopAssignment;
-import org.rutebanken.netex.model.QuayRefStructure;
-import org.rutebanken.netex.model.ScheduledStopPointRefStructure;
-import org.rutebanken.netex.model.ServiceLink;
class DefaultCommonDataRepositoryTest {
diff --git a/src/test/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContextTest.java b/src/test/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContextTest.java
index 28379da9..e2c95134 100644
--- a/src/test/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContextTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/jaxb/JAXBValidationContextTest.java
@@ -13,20 +13,20 @@
import org.entur.netex.validation.validator.id.IdVersion;
import org.entur.netex.validation.validator.model.TransportModeAndSubMode;
import org.entur.netex.validation.validator.model.TransportSubMode;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.BusSubmodeEnumeration;
+import org.entur.netex2.model.JourneyPattern;
+import org.entur.netex2.model.JourneyPatternRefStructure;
+import org.entur.netex2.model.Line;
+import org.entur.netex2.model.LineRefStructure;
+import org.entur.netex2.model.RailSubmodeEnumeration;
+import org.entur.netex2.model.Route;
+import org.entur.netex2.model.RouteRefStructure;
+import org.entur.netex2.model.ServiceJourney;
+import org.entur.netex2.model.TransportSubmodeStructure;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.BusSubmodeEnumeration;
-import org.rutebanken.netex.model.JourneyPattern;
-import org.rutebanken.netex.model.JourneyPatternRefStructure;
-import org.rutebanken.netex.model.Line;
-import org.rutebanken.netex.model.LineRefStructure;
-import org.rutebanken.netex.model.RailSubmodeEnumeration;
-import org.rutebanken.netex.model.Route;
-import org.rutebanken.netex.model.RouteRefStructure;
-import org.rutebanken.netex.model.ServiceJourney;
-import org.rutebanken.netex.model.TransportSubmodeStructure;
class JAXBValidationContextTest {
@@ -42,7 +42,7 @@ class JAXBValidationContextTest {
void setUp() {
Line line = new Line()
.withId("TST:Line:1")
- .withTransportMode(AllVehicleModesOfTransportEnumeration.BUS)
+ .withTransportMode(AllPublicTransportModesEnumeration.BUS)
.withTransportSubmode(
new TransportSubmodeStructure().withBusSubmode(BusSubmodeEnumeration.LOCAL_BUS)
);
@@ -140,10 +140,7 @@ void transportModeAndSubModeDefinedOnLineFromJourneyPattern() {
journeyPattern
);
assertNotNull(transportModeAndSubMode);
- assertEquals(
- AllVehicleModesOfTransportEnumeration.BUS,
- transportModeAndSubMode.mode()
- );
+ assertEquals(AllPublicTransportModesEnumeration.BUS, transportModeAndSubMode.mode());
assertEquals(
new TransportSubMode(BusSubmodeEnumeration.LOCAL_BUS.value()),
transportModeAndSubMode.subMode()
@@ -166,10 +163,7 @@ void transportModeAndSubModeDefinedOnLineFromServiceJourney() {
serviceJourney
);
assertNotNull(transportModeAndSubMode);
- assertEquals(
- AllVehicleModesOfTransportEnumeration.BUS,
- transportModeAndSubMode.mode()
- );
+ assertEquals(AllPublicTransportModesEnumeration.BUS, transportModeAndSubMode.mode());
assertEquals(
new TransportSubMode(BusSubmodeEnumeration.LOCAL_BUS.value()),
transportModeAndSubMode.subMode()
@@ -178,7 +172,7 @@ void transportModeAndSubModeDefinedOnLineFromServiceJourney() {
@Test
void transportModeAndSubModeDefinedOnServiceJourneyFromServiceJourney() {
- serviceJourney.withTransportMode(AllVehicleModesOfTransportEnumeration.RAIL);
+ serviceJourney.withTransportMode(AllPublicTransportModesEnumeration.RAIL);
serviceJourney.withTransportSubmode(
new TransportSubmodeStructure().withRailSubmode(RailSubmodeEnumeration.LOCAL)
);
@@ -197,10 +191,7 @@ void transportModeAndSubModeDefinedOnServiceJourneyFromServiceJourney() {
serviceJourney
);
assertNotNull(transportModeAndSubMode);
- assertEquals(
- AllVehicleModesOfTransportEnumeration.RAIL,
- transportModeAndSubMode.mode()
- );
+ assertEquals(AllPublicTransportModesEnumeration.RAIL, transportModeAndSubMode.mode());
assertEquals(
new TransportSubMode(RailSubmodeEnumeration.LOCAL.value()),
transportModeAndSubMode.subMode()
diff --git a/src/test/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepositoryTest.java b/src/test/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepositoryTest.java
index d5c3c9b7..815b04fa 100644
--- a/src/test/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepositoryTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/jaxb/SiteFrameStopPlaceRepositoryTest.java
@@ -12,14 +12,14 @@
import org.entur.netex.validation.validator.model.StopPlaceId;
import org.entur.netex.validation.validator.model.TransportModeAndSubMode;
import org.entur.netex.validation.validator.model.TransportSubMode;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.BusSubmodeEnumeration;
+import org.entur.netex2.model.LocationStructure;
+import org.entur.netex2.model.MultilingualString;
+import org.entur.netex2.model.Quay;
+import org.entur.netex2.model.SimplePoint_VersionStructure;
+import org.entur.netex2.model.StopPlace;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.BusSubmodeEnumeration;
-import org.rutebanken.netex.model.LocationStructure;
-import org.rutebanken.netex.model.MultilingualString;
-import org.rutebanken.netex.model.Quay;
-import org.rutebanken.netex.model.SimplePoint_VersionStructure;
-import org.rutebanken.netex.model.StopPlace;
class SiteFrameStopPlaceRepositoryTest {
@@ -28,8 +28,8 @@ class SiteFrameStopPlaceRepositoryTest {
private static final int QUAY_LATITUDE = 1;
private static final int QUAY_LONGITUDE = 2;
private static final String STOP_PLACE_NAME = "STOP_PLACE_NAME";
- private static final AllVehicleModesOfTransportEnumeration STOP_PLACE_TRANSPORT_MODE =
- AllVehicleModesOfTransportEnumeration.BUS;
+ private static final AllPublicTransportModesEnumeration STOP_PLACE_TRANSPORT_MODE =
+ AllPublicTransportModesEnumeration.BUS;
private static final BusSubmodeEnumeration STOP_PLACE_TRANSPORT_SUBMODE =
BusSubmodeEnumeration.LOCAL_BUS;
@@ -121,7 +121,7 @@ void testGetCoordinatesForNonExistingQuayId() {
void testGetStopPlaceNameForQuayId() {
NetexEntitiesIndex netexEntitiesIndex = new NetexEntitiesIndexImpl();
StopPlace stopPlace = new StopPlace();
- stopPlace.setName(new MultilingualString().withValue(STOP_PLACE_NAME));
+ stopPlace.setName(new MultilingualString().withContent(STOP_PLACE_NAME));
netexEntitiesIndex.getStopPlaceIndex().put(STOP_PLACE_ID, List.of(stopPlace));
Quay quay = new Quay();
netexEntitiesIndex.getQuayIndex().put(QUAY_ID, List.of(quay));
diff --git a/src/test/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtilsTest.java b/src/test/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtilsTest.java
new file mode 100644
index 00000000..94e9fc59
--- /dev/null
+++ b/src/test/java/org/entur/netex/validation/validator/jaxb/support/DatedServiceJourneyUtilsTest.java
@@ -0,0 +1,49 @@
+package org.entur.netex.validation.validator.jaxb.support;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.entur.netex2.model.DatedServiceJourney;
+import org.entur.netex2.model.ObjectFactory;
+import org.entur.netex2.model.ReplacedJourneys_RelStructure;
+import org.entur.netex2.model.VehicleJourneyRefStructure;
+import org.junit.jupiter.api.Test;
+
+class DatedServiceJourneyUtilsTest {
+
+ private static final String ORIGINAL_DSJ_ID = "TST:DatedServiceJourney:1";
+
+ @Test
+ void noReplacedJourneys() {
+ assertNull(
+ DatedServiceJourneyUtils.originalDatedServiceJourneyRef(new DatedServiceJourney())
+ );
+ }
+
+ @Test
+ void emptyReplacedJourneys() {
+ DatedServiceJourney datedServiceJourney = new DatedServiceJourney()
+ .withReplacedJourneys(new ReplacedJourneys_RelStructure());
+ assertNull(
+ DatedServiceJourneyUtils.originalDatedServiceJourneyRef(datedServiceJourney)
+ );
+ }
+
+ @Test
+ void replacedJourney() {
+ ObjectFactory objectFactory = new ObjectFactory();
+ DatedServiceJourney datedServiceJourney = new DatedServiceJourney()
+ .withReplacedJourneys(
+ new ReplacedJourneys_RelStructure()
+ .withDatedVehicleJourneyRefOrNormalDatedVehicleJourneyRef(
+ objectFactory.createDatedVehicleJourneyRef(
+ new VehicleJourneyRefStructure().withRef(ORIGINAL_DSJ_ID)
+ )
+ )
+ );
+ assertEquals(
+ ORIGINAL_DSJ_ID,
+ DatedServiceJourneyUtils.originalDatedServiceJourneyRef(datedServiceJourney)
+ );
+ }
+}
diff --git a/src/test/java/org/entur/netex/validation/validator/model/MultilingualStringValueTest.java b/src/test/java/org/entur/netex/validation/validator/model/MultilingualStringValueTest.java
new file mode 100644
index 00000000..da339ac7
--- /dev/null
+++ b/src/test/java/org/entur/netex/validation/validator/model/MultilingualStringValueTest.java
@@ -0,0 +1,36 @@
+package org.entur.netex.validation.validator.model;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+import org.entur.netex2.model.MultilingualString;
+import org.junit.jupiter.api.Test;
+
+class MultilingualStringValueTest {
+
+ @Test
+ void nullMultilingualString() {
+ assertNull(MultilingualStringValue.of(null));
+ }
+
+ @Test
+ void emptyContent() {
+ assertNull(MultilingualStringValue.of(new MultilingualString()));
+ }
+
+ @Test
+ void singleTextContent() {
+ assertEquals(
+ "Oslo S",
+ MultilingualStringValue.of(new MultilingualString().withContent("Oslo S"))
+ );
+ }
+
+ @Test
+ void multipleTextContentIsConcatenated() {
+ assertEquals(
+ "Oslo S",
+ MultilingualStringValue.of(new MultilingualString().withContent("Oslo", " S"))
+ );
+ }
+}
diff --git a/src/test/java/org/entur/netex/validation/validator/model/ServiceJourneyStopTest.java b/src/test/java/org/entur/netex/validation/validator/model/ServiceJourneyStopTest.java
index 9ba8e483..fe104f61 100644
--- a/src/test/java/org/entur/netex/validation/validator/model/ServiceJourneyStopTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/model/ServiceJourneyStopTest.java
@@ -3,8 +3,8 @@
import static org.junit.jupiter.api.Assertions.*;
import java.time.LocalTime;
+import org.entur.netex2.model.TimetabledPassingTime;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.TimetabledPassingTime;
class ServiceJourneyStopTest {
diff --git a/src/test/java/org/entur/netex/validation/validator/model/TransportModeAndSubModeTest.java b/src/test/java/org/entur/netex/validation/validator/model/TransportModeAndSubModeTest.java
index 8eb6de6c..46ad0423 100644
--- a/src/test/java/org/entur/netex/validation/validator/model/TransportModeAndSubModeTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/model/TransportModeAndSubModeTest.java
@@ -2,12 +2,12 @@
import static org.junit.jupiter.api.Assertions.*;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.BusSubmodeEnumeration;
+import org.entur.netex2.model.RailSubmodeEnumeration;
+import org.entur.netex2.model.StopPlace;
+import org.entur.netex2.model.TransportSubmodeStructure;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.BusSubmodeEnumeration;
-import org.rutebanken.netex.model.RailSubmodeEnumeration;
-import org.rutebanken.netex.model.StopPlace;
-import org.rutebanken.netex.model.TransportSubmodeStructure;
class TransportModeAndSubModeTest {
@@ -23,7 +23,7 @@ void testMissingTransportModeAndSubModeFromStopPlace() {
@Test
void testMissingTransportSubModeFromStopPlace() {
StopPlace stopPlace = new StopPlace();
- stopPlace.withTransportMode(AllVehicleModesOfTransportEnumeration.RAIL);
+ stopPlace.withTransportMode(AllPublicTransportModesEnumeration.RAIL);
TransportModeAndSubMode transportModeAndSubMode = TransportModeAndSubMode.of(
stopPlace
);
@@ -35,16 +35,13 @@ void testMissingTransportSubModeFromStopPlace() {
void testCreateTransportModeAndSubModeFromStopPlace() {
StopPlace stopPlace = new StopPlace();
stopPlace
- .withTransportMode(AllVehicleModesOfTransportEnumeration.RAIL)
+ .withTransportMode(AllPublicTransportModesEnumeration.RAIL)
.withRailSubmode(RailSubmodeEnumeration.LOCAL);
TransportModeAndSubMode transportModeAndSubMode = TransportModeAndSubMode.of(
stopPlace
);
assertNotNull(transportModeAndSubMode);
- assertEquals(
- AllVehicleModesOfTransportEnumeration.RAIL,
- transportModeAndSubMode.mode()
- );
+ assertEquals(AllPublicTransportModesEnumeration.RAIL, transportModeAndSubMode.mode());
assertEquals(
new TransportSubMode(RailSubmodeEnumeration.LOCAL.value()),
transportModeAndSubMode.subMode()
@@ -56,7 +53,7 @@ void testCreateTransportModeAndSubModeFromStructure() {
TransportSubmodeStructure submode = new TransportSubmodeStructure()
.withBusSubmode(BusSubmodeEnumeration.LOCAL_BUS);
TransportModeAndSubMode transportModeAndSubMode = TransportModeAndSubMode.of(
- AllVehicleModesOfTransportEnumeration.BUS,
+ AllPublicTransportModesEnumeration.BUS,
submode
);
assertNotNull(transportModeAndSubMode);
@@ -74,7 +71,7 @@ void testUnknownTransportSubModeForMode() {
TransportSubmodeStructure submode = new TransportSubmodeStructure()
.withBusSubmode(BusSubmodeEnumeration.LOCAL_BUS);
TransportModeAndSubMode transportModeAndSubMode = TransportModeAndSubMode.of(
- AllVehicleModesOfTransportEnumeration.RAIL,
+ AllPublicTransportModesEnumeration.RAIL,
submode
);
assertNotNull(transportModeAndSubMode);
diff --git a/src/test/java/org/entur/netex/validation/validator/model/TransportSubModeTest.java b/src/test/java/org/entur/netex/validation/validator/model/TransportSubModeTest.java
index c7c0e35a..678fa814 100644
--- a/src/test/java/org/entur/netex/validation/validator/model/TransportSubModeTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/model/TransportSubModeTest.java
@@ -3,12 +3,12 @@
import static org.junit.jupiter.api.Assertions.*;
import java.util.Optional;
+import org.entur.netex2.model.AllPublicTransportModesEnumeration;
+import org.entur.netex2.model.RailSubmodeEnumeration;
+import org.entur.netex2.model.SelfDriveSubmodeEnumeration;
+import org.entur.netex2.model.StopPlace;
+import org.entur.netex2.model.TransportSubmodeStructure;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.AllVehicleModesOfTransportEnumeration;
-import org.rutebanken.netex.model.RailSubmodeEnumeration;
-import org.rutebanken.netex.model.SelfDriveSubmodeEnumeration;
-import org.rutebanken.netex.model.StopPlace;
-import org.rutebanken.netex.model.TransportSubmodeStructure;
class TransportSubModeTest {
@@ -28,7 +28,7 @@ void testMissingTransportModeAndSubModeOnStopPlace() {
@Test
void testMissingTransportSubModeOnStopPlace() {
StopPlace stopPlace = new StopPlace();
- stopPlace.withTransportMode(AllVehicleModesOfTransportEnumeration.RAIL);
+ stopPlace.withTransportMode(AllPublicTransportModesEnumeration.RAIL);
Optional transportSubMode = TransportSubMode.of(stopPlace);
assertFalse(transportSubMode.isPresent());
}
@@ -37,7 +37,7 @@ void testMissingTransportSubModeOnStopPlace() {
void testTransportModeAndSubModeOnStopPlace() {
StopPlace stopPlace = new StopPlace();
stopPlace
- .withTransportMode(AllVehicleModesOfTransportEnumeration.RAIL)
+ .withTransportMode(AllPublicTransportModesEnumeration.RAIL)
.withRailSubmode(RailSubmodeEnumeration.LOCAL);
Optional transportSubMode = TransportSubMode.of(stopPlace);
assertTrue(transportSubMode.isPresent());
@@ -53,7 +53,7 @@ void testMissingTransportModeAndSubModeFromStructure() {
@Test
void testMissingTransportSubModeFromStructure() {
Optional transportSubMode = TransportSubMode.of(
- AllVehicleModesOfTransportEnumeration.RAIL,
+ AllPublicTransportModesEnumeration.RAIL,
null
);
assertFalse(transportSubMode.isPresent());
@@ -62,7 +62,7 @@ void testMissingTransportSubModeFromStructure() {
@Test
void testUnknownTransportSubMode() {
Optional transportSubMode = TransportSubMode.of(
- AllVehicleModesOfTransportEnumeration.RAIL,
+ AllPublicTransportModesEnumeration.RAIL,
new TransportSubmodeStructure()
.withSelfDriveSubmode(SelfDriveSubmodeEnumeration.ALL_VEHICLES)
);
@@ -72,7 +72,7 @@ void testUnknownTransportSubMode() {
@Test
void testTransportModeAndSubModeFromStructure() {
Optional transportSubMode = TransportSubMode.of(
- AllVehicleModesOfTransportEnumeration.RAIL,
+ AllPublicTransportModesEnumeration.RAIL,
new TransportSubmodeStructure().withRailSubmode(RailSubmodeEnumeration.LOCAL)
);
assertTrue(transportSubMode.isPresent());
diff --git a/src/test/java/org/entur/netex/validation/validator/schema/NetexSchemaValidatorTest.java b/src/test/java/org/entur/netex/validation/validator/schema/NetexSchemaValidatorTest.java
index 1ad9ffb0..0376e52a 100644
--- a/src/test/java/org/entur/netex/validation/validator/schema/NetexSchemaValidatorTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/schema/NetexSchemaValidatorTest.java
@@ -21,6 +21,21 @@ class NetexSchemaValidatorTest {
""";
+ private static final String NETEX_2_0_FRAGMENT_VALID =
+ """
+
+ 2021-10-07T13:40:22.872
+ RB
+
+ """;
+
+ private static final String NETEX_2_0_FRAGMENT_INVALID =
+ """
+
+ 2021-10-07T13:40:22.872
+
+ """;
+
private static final String NETEX_FRAGMENT_INVALID =
"""
@@ -45,6 +60,18 @@ void validateValidDocument() {
assertTrue(validationIssues.isEmpty());
}
+ @Test
+ void validateValidNetex20Document() {
+ List validationIssues = validate(NETEX_2_0_FRAGMENT_VALID);
+ assertTrue(validationIssues.isEmpty());
+ }
+
+ @Test
+ void validateInvalidNetex20Document() {
+ List validationIssues = validate(NETEX_2_0_FRAGMENT_INVALID);
+ assertEquals(1, validationIssues.size());
+ }
+
@Test
void validateInvalidDocument() {
List validationIssues = validate(NETEX_FRAGMENT_INVALID);
diff --git a/src/test/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessPropertyTest.java b/src/test/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessPropertyTest.java
index d23c9f72..5fb06d34 100644
--- a/src/test/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessPropertyTest.java
+++ b/src/test/java/org/entur/netex/validation/validator/xpath/rules/ValidateAllowedBookingAccessPropertyTest.java
@@ -4,9 +4,9 @@
import org.entur.netex.validation.test.xpath.support.TestValidationContextBuilder;
import org.entur.netex.validation.validator.ValidationIssue;
import org.entur.netex.validation.validator.xpath.XPathRuleValidationContext;
+import org.entur.netex2.model.BookingAccessEnumeration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
-import org.rutebanken.netex.model.BookingAccessEnumeration;
class ValidateAllowedBookingAccessPropertyTest {