Reglar

← Tilbake til validatoren. Alle reglane validatoren sjekkar, henta frå validator/RULES.md. Må-felt gir ERROR og Bør-felt gir WARN.

Regel 0: lesbar XML

IdNivåRegelKjelde
XML-01ERRORFila kan ikkje lesast som XML. DOCTYPE blir avvist, sidan NeTEx ikkje brukar DTD (vern mot XXE og entitetsekspansjon).Tryggingsstandard (vern mot XXE/entitetsekspansjon) — ikkje henta frå NeTEx-spesifikasjonen.
XML-02ERRORRotelementet er ikkje PublicationDelivery.NeTEx 2.0-XSD: PublicationDelivery er det einaste elementet erklært som gyldig rot, NeTEx_publication.xsd:302 (<xsd:element name="PublicationDelivery" type="PublicationDeliveryStructure">).

Regel 1: XSD-gyldigheit (NeTEx 2.0)

IdNivåRegelKjelde
XSD-01ERRORKvar feil frå xmllint --noout --schema NeTEx_publication.xsd blir éin ERROR, med fil og linje frå xmllint.NeTEx 2.0-XSD-en, heile skjemaet — ingen enkelt linje å vise til.
XSD-00ERRORValidatoren fann ikkje xmllint, eller xmllint feila utan å gi melding.Ikkje ei spesifikasjonstilvising — validatoren sin eigen feilhandtering når verktøyet manglar.

Regel 2: kompletthet for Må- og Bør-felta

IdNivåElementRegelSvarar påKjelde
MA-SOP-00ERRORdatasettDatasettet har minst éin SalesOfferPackage.kva som blir seltNotatet — ikkje bunde til eitt XSD-felt.
MA-SOP-01ERRORSalesOfferPackageHar @id og @version.kva som blir selt@id: use="required", netex_salesOfferPackage_version.xsd:192. @version: use="optional" overalt, netex_version_support.xsd:187 — Må er notatet si vurdering.
MA-SOP-02ERRORSalesOfferPackageHar ein Name som ikkje er tom.kva som blir seltminOccurs="0", netex_farePrice_version.xsd:127 (delt PriceableObjectGroup) — notatet.
MA-SOP-03ERRORSalesOfferPackageHar ValidBetween eller validityConditions på sjølve salspakken. Validatoren les ikkje gyldigheit frå rammene.kva som blir seltHeile valet minOccurs="0", netex_version_version.xsd:110-118 (EntityInVersionGroup) — notatet.
MA-SPE-01ERRORSalesOfferPackageHar minst eitt SalesOfferPackageElement med produktreferanse. Gyldige produktreferansar er alle element i substitusjonsgruppa ServiceAccessRightRef, lesne frå XSD-en (PreassignedFareProductRef, SupplementProductRef, FareProductRef osb.).kva som blir seltminOccurs="0", netex_salesOfferPackage_version.xsd:343 — notatet.
MA-DA-01ERRORSalesOfferPackageHar minst éin DistributionAssignment, anten inne i salspakken eller i ramma med SalesOfferPackageRef til han.kvarNotatet — ikkje bunde til eitt XSD-felt.
MA-DA-02ERRORDistributionAssignmentHar DistributionChannelRef eller DistributionChannelType.kvarminOccurs="0", netex_salesOfferPackage_version.xsd:709-710 — notatet.
MA-DA-03ERRORDistributionAssignmentHar FulfilmentMethodRef. Feltet er 0..1, så det trengst éin DA per utferdingsmåte.korleisminOccurs="0", same fil, linje 772 — notatet.
MA-DA-04ERRORDistributionAssignmentHar PaymentMethods, anten på DA-en eller på DistributionChannel-en han peikar til (sjå «Må*» i notatet).betalingminOccurs="0" på begge stader, same fil, linje 762 — notatet, «Må*».
MA-DC-01ERRORDistributionChannelHar Name.kvarName er ikkje i DistributionChannelGroup — arva frå TypeOfValueGroup, netex_typeOfValue_version.xsd:123, minOccurs="0" — notatet.
MA-DC-02ERRORDistributionChannelHar DistributionChannelType. Den nordiske profilen krev 1..1.kvarminOccurs="0", netex_salesDistribution_version.xsd:170-215 (DistributionChannelGroup). Nordisk profil-krav om 1..1 ikkje uavhengig verifisert — sjå «Avgrensingar».
MA-FM-01ERRORFulfilmentMethodHar FulfilmentMethodType.korleisminOccurs="0", netex_salesDistribution_version.xsd:379 (FulfilmentMethodGroup) — notatet.
MA-FM-02ERRORFulfilmentMethodHar Name. Tabellen i notatet set «id, Name, FulfilmentMethodType» som Må, og «Datakvalitet» seier at dei to utferdingsmåtane våre manglar namn.korleisName er ikkje i FulfilmentMethodGroup — arva frå same PriceableObjectGroup som SalesOfferPackage sin Name (netex_farePrice_version.xsd:127) — notatet, «Datakvalitet».
BOR-SPE-01WARNSalesOfferPackageElementManglar TypeOfTravelDocumentRef.kva som blir seltminOccurs="0", netex_salesOfferPackage_version.xsd:342.
BOR-DA-01WARNDistributionAssignmentManglar DistributionRights (sell, refund, exchange …).kva ein kan gjereminOccurs="0" (DistributionAssignmentGroup), netex_salesOfferPackage_version.xsd:665.
BOR-DC-01WARNDistributionChannelManglar ContactDetails/Url.kvarminOccurs="0", netex_salesDistribution_version.xsd:170-215 (DistributionChannelGroup).
BOR-DC-02WARNDistributionChannelManglar OrganisationRef eller ein anna organisasjonsreferanse (AuthorityRef, OperatorRef …). Dette dekkjer raden «Organisation / Authority: eigar av kanal».kvenminOccurs="0", same fil og gruppe, linje 170-215.
BOR-TOTD-01WARNTypeOfTravelDocumentManglar MediaType.korleisminOccurs="0", netex_typeOfTravelDocument_version.xsd:200 (TypeOfTravelDocumentGroup).
BOR-TOTD-02WARNTypeOfTravelDocumentManglar MachineReadable.korleisminOccurs="0", same fil og gruppe, linje 205.

Regel 3: gyldige enumverdiar

IdNivåRegelKjelde
ENUM-01ERRORKvar verdi i DistributionChannelType, FulfilmentMethodType, PaymentMethods, DistributionRights, MediaType og MachineReadable finst i NeTEx 2.0-enumen. Døme på feil: customerAccount, vipps, PAPER_TICKET, INFROM.NeTEx 2.0-XSD, dei seks xsd:enumeration-listene: DistributionChannelTypeEnumeration, FulfilmentMethodTypeEnumeration, PaymentMethodEnumeration, DistributionRightsEnumeration, MediaTypeEnumeration, MachineReadableEnumeration.
ENUM-02WARNVerdien er generisk og seier ikkje kvar eller korleis: other i alle seks felta, og i tillegg none for DistributionRights, MediaType og MachineReadable.Same seks enumtypar som ENUM-01, over — other/none er verdiar *inne i* dei same listene, ikkje ei eiga kjelde.

Regel 4: referanseintegritet

IdNivåRegelKjelde
REF-01ERRORKvart element med namn som sluttar på Ref og har @ref, må treffe eit element med same @id i ei av inndatafilene.NeTEx 2.0-XSD: xsd:keyref per entitetstype, t.d. DistributionChannel_KeyRef, handheva på tvers av filer.
REF-02ERRORNår referansen har @version (og verdien ikkje er any), må målet ha nøyaktig den versjonen. Meldinga viser kva versjonar som finst.Same keyref: nøkkelen er samansett av (@ref,@version) — versjonsmismatch er same keyref-brot som REF-01.
REF-03ERRORSame @id + @version finst meir enn éin gong i same fil.NeTEx 2.0-XSD: xsd:unique per entitetstype (t.d. linje 11255), handheva på tvers av filer.
REF-03ERRORSame @id + @version finst i fleire filer, og innhaldet er ulikt etter normalisering. Meldinga viser begge plasseringane.Same.
REF-03WARNSame @id + @version finst i fleire filer med identisk innhald, til dømes ein delt kanal, utferdingsmåte eller autoritet som er kopiert inn i kvar fil.Same xsd:unique, men nedgradert til WARN sidan NeTEx-økosystemet (delte filer) legitimt tillèt dette.
REF-04ERROR@id eller @ref inneheld :Test, som i ENT:DistributionChannel:Test.Ingen offentleg kjelde — Entur sin eigen namnekonvensjon, kravd av notatet si «Datakvalitet»-finding.
REF-05ERRORDistributionChannelRef, FulfilmentMethodRef, TypeOfTravelDocumentRef og SalesOfferPackageRef peikar på eit element av rett type.Same keyref-mekanisme som REF-01: kvart selector-uttrykk (.//netex:DistributionChannelRef osb.) koplar éin ref-type til éin key-type.
REF-06ERRORReferansen har @version (og verdien ikkje er any), og målet sin ValidBetween/ToDate er før referansedatoen. Berre ValidBetween blir tolka, ikkje validityConditions. Referansedatoen er dagens dato, eller --as-of YYYY-MM-DD.NeTEx 2.0-XSD: ValidBetween/ToDate er ein ekte, definert struktur (netex_validityCondition_version.xsd:429-438, dokumentert som «End of AVAILABILITY CONDITION. Date is INCLUSIVE.»). Sjølve samanlikninga mot referansedatoen er validatorlogikk, ikkje eit XSD-krav — men «INCLUSIVE» stadfestar at ToDate < as_of (strengt mindre enn) er rett grense, ikkje av-med-éin.

Regel 5: leveranse (berre i nettlesaren)

IdNivåRegelKjelde
DEL-01WARNLeveransen har fleire filer, men ingen av dei byrjar med _. DEL-03 til DEL-06 og DEL-09 blir då hoppa over. Tilrådd namn er _<CODESPACE>_shared_data.xml (nordisk konvensjon).Nordisk profil (hovudsida er open; konkret underside for namnekonvensjonen er ikkje lokalisert)
DEL-02WARNFilene har ulik ParticipantRef eller ulik PublicationDelivery/@version. Eige profilval.Ingen kjelde krev det — eige profilval
DEL-03WARNEi einingsfil peikar på eit objekt som berre finst i ei anna einingsfil. Einingsfiler skal berre vere avhengige av delte filer og seg sjølve (nordisk konvensjon).entur/netex-validator-java: NetexReferenceValidator.java:19-23 (NETEX_ID_5, «Unresolved reference to external reference data»)
DEL-04WARNEi delt fil inneheld ein SalesOfferPackage. Salspakkar høyrer til i einingsfilene (nordisk konvensjon).Ingen direkte kjelde: biblioteket har berre *_IN_COMMON_FILE for Line/Route/JourneyPattern/SiteFrame/TimetableFrame (t.d. DefaultServiceFrameValidationTreeFactory.java), ikkje for SalesOfferPackage — eigen analogi til det mønsteret
DEL-05WARNEi delt fil peikar på eit objekt som berre finst i ei einingsfil. Delte filer skal vere sjølvstendige (nordisk konvensjon).Ingen direkte kjelde i netex-validator-java for akkurat dette — eigen analogi, som DEL-04
DEL-06WARNEit toppobjekt i ei delt fil blir ikkje brukt av nokon einingsfil, direkte eller gjennom andre objekt i delte filer.FXC del 3, «H — Data Relevance», s. 185–186: «Documents should not contain irrelevant or unused instances of data»
DEL-07WARNEin CompositeFrame manglar ValidBetween eller validityConditions, eller ei ramme inne i han har eiga gyldigheit (nordisk konvensjon).entur/netex-validator-java: DefaultCompositeFrameTreeFactory.java:44-62 (COMPOSITE_FRAME_1/2). Merk: biblioteket krev berre validityConditions, ikkje ValidBetween som alternativ — DEL-07 er meir tillatande enn kjelda si eiga regel
DEL-08WARNSame @id (uansett versjon) er definert i fleire einingsfiler. Objektet bør flyttast til ei delt fil. Rammer er unnatekne (nordisk konvensjon).entur/netex-validator-java: NetexIdUniquenessValidator.java:26-31 (NETEX_ID_1, RULE_DUPLICATE_ID_ACROSS_FILES)
DEL-09WARNSame @id er definert i fleire delte filer. Rammer er unnatekne (nordisk konvensjon).entur/netex-validator-java: same fil, linje 33-38 (NETEX_ID_10, RULE_DUPLICATE_ID_ACROSS_COMMON_FILES)
DEL-10WARNEin referanse på tvers av filer brukar version i staden for versionRef. Då feilar keyref i XSD-en når fila blir validert åleine.EPIP §5.2.2 «Integrity Checking of XML Documents», s. 33: skil version (schema-handheva via keyref) frå versionRef (svakare sjekk)
DEL-11WARNFila har referansar til ei anna fil, men ingen ramme har prerequisites til ei ramme i den fila.EPIP §8.6 «Dependencies between frames», s. 140: prerequisites på ei VersionFrame gjer at integritetssjekken blir utsett når ramma ligg i eit anna dokument
DEL-12WARNEin versionRef peikar på ein versjon som ikkje finst i leveransen, sjølv om id-en finst. REF-02 sjekkar berre version.NeTEx 2.0-XSD: same keyref-mekanisme som REF-01/02 — ikkje uavhengig stadfesta mot éi spesifikk linje her