Skip to content
Open
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
10 changes: 5 additions & 5 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: Build and Deploy
on:
push:
branches:
- master
- upgrade-netex-2.0
pull_request:
branches:
- master
- upgrade-netex-2.0
jobs:
maven-verify:
runs-on: ubuntu-24.04
Expand All @@ -22,7 +22,7 @@ jobs:
sudo apt-get -y install xmlstarlet
- uses: actions/setup-java@v4
with:
java-version: 17
java-version: 21
distribution: liberica
- name: Cache Maven dependencies
uses: actions/cache@v5
Expand Down Expand Up @@ -68,13 +68,13 @@ jobs:

publish-snapshot:
name: Publish snapshot to Maven Central
if: github.repository_owner == 'entur' && github.event_name == 'push' && github.ref == 'refs/heads/master'
if: github.repository_owner == 'entur' && github.event_name == 'push' && github.ref == 'refs/heads/upgrade-netex-2.0'
needs: maven-verify
uses: ./.github/workflows/maven-jreleaser-release.yml
with:
version: ${{ needs.maven-verify.outputs.version }}
snapshot: true
skip_version_update: true
java_version: 11
java_version: 21
java_distribution: liberica
secrets: inherit
54 changes: 38 additions & 16 deletions bindings.xjb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:version="3.0" jxb:extensionBindingPrefixes="xjc">

<jxb:bindings>
<jxb:globalBindings underscoreBinding="asCharInWord">
<xjc:javaType name="java.time.LocalDateTime" xmlType="xs:dateTime" adapter="org.rutebanken.util.LocalDateTimeISO8601XmlAdapter" />
Expand All @@ -14,14 +14,14 @@

<!-- See the script bin/version_updater.sh It updates version in schema locations-->

| <jxb:bindings schemaLocation="./src/main/resources/xsd/1.16/NeTEx_publication.xsd">
| <jxb:bindings schemaLocation="./src/main/resources/xsd/2.0/NeTEx_publication.xsd">
<jxb:schemaBindings>
<jxb:package name="org.rutebanken.netex.model" />
</jxb:schemaBindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_framework/netex_genericFramework/netex_organisation_version.xsd">
schemaLocation="./src/main/resources/xsd/2.0/netex_framework/netex_genericFramework/netex_organisation_version.xsd">
<jxb:bindings node="//xsd:element[@name = 'Status']">
<jxb:property name="StatusOrganisationGroup" />
</jxb:bindings>
Expand All @@ -30,35 +30,28 @@
</jxb:bindings>
</jxb:bindings>
<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_part_3/part3_fares/netex_salesOfferPackage_version.xsd">
schemaLocation="./src/main/resources/xsd/2.0/netex_part_3/part3_fares/netex_salesOfferPackage_version.xsd">
<jxb:bindings node="//xsd:element[@ref = 'ResponsibilitySetRef']">
<jxb:property name="ResponsibilitySetRefDistributionByGroup" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_part_2/part2_journeyTimes/netex_vehicleJourneyFrequency_version.xsd">
<jxb:bindings node="//xsd:group[@name= 'HeadwayJourneyGroupGroup']/xsd:sequence/xsd:element[@name = 'Description']">
<jxb:property name="DescriptionHeadwayJourneyGroupGroup" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_part_3/part3_salesTransactions/netex_salesContract_version.xsd">
schemaLocation="./src/main/resources/xsd/2.0/netex_part_3/part3_salesTransactions/netex_salesContract_version.xsd">
<jxb:bindings node="//xsd:element[@name = 'Status']">
<jxb:property name="StatusPassengerContractGroup" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_part_3/part3_salesTransactions/netex_retailConsortium_version.xsd">
schemaLocation="./src/main/resources/xsd/2.0/netex_part_3/part3_salesTransactions/netex_retailConsortium_version.xsd">
<jxb:bindings node="//xsd:element[@name = 'Status']">
<jxb:property name="StatusRetailDeviceGroup" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_framework/netex_responsibility/netex_version_support.xsd">
schemaLocation="./src/main/resources/xsd/2.0/netex_framework/netex_responsibility/netex_version_support.xsd">
<jxb:bindings node="//xsd:attributeGroup[@name = 'BasicModificationDetailsGroup']/xsd:attribute[@name = 'status']">
<jxb:property name="status_BasicModificationDetailsGroup" />
</jxb:bindings>
Expand All @@ -68,14 +61,43 @@
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/1.16/netex_framework/netex_genericFramework/netex_zone_version.xsd">
<jxb:bindings node="//xsd:complexType[@name = 'tariffZonesInFrame_RelStructure']/xsd:complexContent/xsd:extension[@base = 'containmentAggregationStructure']/xsd:sequence/xsd:element[@ref = 'TariffZone_']">
schemaLocation="./src/main/resources/xsd/2.0/netex_framework/netex_genericFramework/netex_zone_version.xsd">
<jxb:bindings node="//xsd:complexType[@name = 'tariffZonesInFrame_RelStructure']/xsd:complexContent/xsd:extension[@base = 'containmentAggregationStructure']/xsd:sequence/xsd:element[@ref = 'TariffZone_Dummy']">
<jxb:property name="tariffZone" />
</jxb:bindings>
</jxb:bindings>

<!-- NeTEx 2.0: Resolve ObjectFactory collisions for bookingArrangements vs BookingArrangements -->
<jxb:bindings
schemaLocation="./src/main/resources/xsd/2.0/netex_part_1/part1_tacticalPlanning/netex_servicePattern_version.xsd">
<jxb:bindings node="//xsd:group[@name = 'StopPointInPatternPropertiesGroup']/xsd:sequence/xsd:choice/xsd:element[@name = 'bookingArrangements']">
<jxb:property name="bookingArrangementsRelStructure" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/2.0/netex_part_5/part5_rc/netex_nm_mobilityService_version.xsd">
<jxb:bindings node="//xsd:group[@name = 'MobilityServiceGroup']/xsd:sequence/xsd:choice/xsd:element[@name = 'serviceBookingArrangements']">
<jxb:property name="serviceBookingArrangementsRelStructure" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/2.0/netex_part_3/part3_fares/netex_usageParameterBooking_version.xsd">
<jxb:bindings node="//xsd:group[@name = 'ReservingGroup']/xsd:sequence/xsd:choice/xsd:element[@name = 'bookingArrangements']">
<jxb:property name="bookingArrangementsRelStructureReserving" />
</jxb:bindings>
<jxb:bindings node="//xsd:group[@name = 'CancellingGroup']/xsd:sequence/xsd:choice/xsd:element[@name = 'bookingArrangements']">
<jxb:property name="bookingArrangementsRelStructureCancelling" />
</jxb:bindings>
</jxb:bindings>

<jxb:bindings
schemaLocation="./src/main/resources/xsd/2.0/netex_part_1/part1_ifopt/netex_assistanceBooking_version.xsd">
<jxb:bindings node="//xsd:group[@name = 'AssistanceBookingServiceGroup']/xsd:sequence/xsd:choice/xsd:element[@name = 'bookingArrangements']">
<jxb:property name="bookingArrangementsRelStructureAssistance" />
</jxb:bindings>
</jxb:bindings>


</jxb:bindings>
31 changes: 16 additions & 15 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.entur</groupId>
<artifactId>netex-java-model</artifactId>
<version>2.0.16-SNAPSHOT</version>
<version>3.0.0-SNAPSHOT</version>

<name>netex-java-model</name>
<description>Generates Java model from NeTEx XSDs using JAXB.</description>
Expand Down Expand Up @@ -66,12 +66,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Do not edit, this is automatically updated by the Maven release plugin -->
<project.build.outputTimestamp>2023-11-01T10:21:59Z</project.build.outputTimestamp>
<jdk.version>11</jdk.version>
<jdk.version>21</jdk.version>

<netexRepoName>NeTEx</netexRepoName>
<netexBranch>update_dsj</netexBranch>
<netexGithubUrl>https://github.com/entur/${netexRepoName}</netexGithubUrl>
<netexVersion>1.16</netexVersion>
<netexBranch>next</netexBranch>
<cenNetexGithubUrl>https://github.com/NeTEx-CEN/${netexRepoName}</cenNetexGithubUrl>
<enturNetexGithubUrl>https://github.com/entur/${netexRepoName}</enturNetexGithubUrl>
<netexVersion>2.0</netexVersion>

<!-- JAXB components versions -->
<jakarta-xml-bind.version>4.0.4</jakarta-xml-bind.version>
Expand Down Expand Up @@ -279,7 +280,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/${netexBranch}.zip</GITHUB_URL>
<GITHUB_URL>${cenNetexGithubUrl}/archive/${netexBranch}.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/${netexVersion}</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-${netexBranch}/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand Down Expand Up @@ -310,7 +311,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.15.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.15.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.15</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.15/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -326,7 +327,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.14.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.14.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.14</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.14/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -342,7 +343,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.13.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.13.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.13</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.13/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -358,7 +359,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.12.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.12.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.12</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.12/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -374,7 +375,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.11.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.11.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.11</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.11/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -390,7 +391,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.10-entur.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.10-entur.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.10</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.10-entur/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -406,7 +407,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.9.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.9.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.09</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.9/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand All @@ -422,7 +423,7 @@
</goals>
<configuration>
<environmentVariables>
<GITHUB_URL>${netexGithubUrl}/archive/tags/v1.0.8.zip</GITHUB_URL>
<GITHUB_URL>${enturNetexGithubUrl}/archive/tags/v1.0.8.zip</GITHUB_URL>
<DESTINATION_PATH>src/main/resources/xsd/1.08</DESTINATION_PATH>
<ZIP_PATH_TO_EXTRACT>NeTEx-tags-v1.0.8/xsd/*</ZIP_PATH_TO_EXTRACT>
</environmentVariables>
Expand Down Expand Up @@ -676,7 +677,7 @@
</activation>

<properties>
<jdk.version>11</jdk.version>
<jdk.version>21</jdk.version>
<sonar-maven-plugin.version>3.9.1.2184</sonar-maven-plugin.version>
</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public enum NetexVersion {
v1_13 ("1.13"),
v1_14 ("1.14"),
v1_15 ("1.15"),
v1_16 ("1.16");
v1_16 ("1.16"),
v2_0 ("2.0");

private final String folderName;

Expand All @@ -59,7 +60,7 @@ public String toString() {
}
private final Schema neTExSchema;

public static final NetexVersion LATEST = NetexVersion.v1_16;
public static final NetexVersion LATEST = NetexVersion.v2_0;

private static final Map<NetexVersion, NeTExValidator> VALIDATORS_PER_VERSION = new EnumMap<>(NetexVersion.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,20 @@ public static void initContext() throws JAXBException {

}


/**
* Helper method to extract string value from MultilingualString.
* In NeTEx 2.0, MultilingualString uses mixed content instead of a simple value.
*/
protected static String getStringValue(MultilingualString multilingualString) {
if (multilingualString == null || multilingualString.getContent() == null) {
return null;
}
return multilingualString.getContent().stream()
.filter(String.class::isInstance)
.map(String.class::cast)
.findFirst()
.orElse(null);
}


}
Loading