Voor het modelleren van AFD verbandcontroles heeft SIVI een aantal richtlijnen opgesteld. Hieronder volgen een aantal richtlijnen.

AFD verbandcontrole
Hoofdvalidatieregel.
Conditionele expressie
Een van de belangrijkste richtlijnen binnen de AFD-definitie Standaard is dat een AFD verbandcontrole altijd een conditionele expressie moet zijn.
Hierdoor evalueert een AFD verbandcontrole altijd naar true of false.
if (‘logische expressie’ ) then ‘logische expressie’ else true()
Achter ‘if’
De conditie waaraan voldaan moet worden om een validatie binnen het XML-bericht uit te voeren. In bovenstaand voorbeeld (zie paragraaf 6.2.2)
is dat ‘CA_VERZSOM > 40000’. Binnen de expressie kan een reeks van XPath-operatoren worden gebruikt, waarmee ook naar meerdere
attributen kan worden verwezen.
Voorbeeld: if (//CA_VERZSOM > 50000 and //CA_GEBIED = E) then // CA_ERB > 1000 else true()
Achter ‘then’
In deze expressie staat de validatie die moet worden uitgevoerd als de eerdere if-conditie waar is. In bovenstaand voorbeeld (zie paragraaf 6.2.2)
is dat ‘ERB > 500’. Ook hier kan een reeks van operatoren worden gebruikt en kan naar meerdere attributen worden verwezen.
Voorbeeld: if (//CA_GEBIED = E) then //CA_VERZSOM > 30000 and //CA_ERB > 1000 else true()
Achter ‘else’
De logische expressie achter het else-gedeelte wordt actief als niet wordt voldaan aan de if-conditie om een verbandcontrole uit te voeren.
Dit betekent dat er geen reden is om deze verbandcontrole (het then-gedeelte) verder uit te voeren. Voor de verbandcontrole in XPath binnen
AFD Berichtvalidatie geldt dat het else-gedeelte altijd wordt ingevuld met ‘true()’. Bij de verwerking van deze XPath-regel betekent dit,
dat de regel geen effect heeft als niet wordt voldaan aan de condities voor validatie.
AFD-richtlijnen
Aanvullende validatieregels.
Vergelijkingen met XPath
Met de XPath-functie FN:DOC kan worden verwezen naar nodes van een ander XML-bericht en kunnen waarden van nodes
worden vergeleken. Vergelijkingen van elementen mogen echter niet over meerdere XML-berichten heen worden uitgevoerd.
Een AFD verbandcontrole wordt namelijk altijd uitgevoerd op één AFD XML-bericht.
Chaining van output
Een outputcontrole waarbij validatieregel 1 de input is van validatieregel 2, is niet toegestaan. AFD verbandcontroles mogen geen
gebruik maken van chaining. Processingsnelheid wordt daarmee te negatief beïnvloed en fouten terugzoeken te gecompliceerd.
Custom functies
In custom functies is het technisch mogelijk om andere programmeertalen te gebruiken dan de W3C XML-standaard. Voor het opmaken
van een expressie is het verplicht gesteld om alleen XPath 2.0 expressies te gebruiken en geen andere programmeertalen.
De reden is dat partijen die een XPath-expressie gaan gebruiken waar andere programmeertalen zijn gehanteerd, vastlopen in het
applicatieonderdeel van de AFD-definitie Standaard. Een custom functie kan wel worden aangevraagd bij SIVI. SIVI kan
de expressie vervolgens in de AFD XPath Library ter beschikking stellen aan alle marktpartijen.
Rekenkundige operatoren
Rekenkundige operatoren moeten ge-escaped worden aangegeven in een AFD verbandcontrole. Dit voorkomt dat operatoren
zoals ”>=” foutief worden gelezen door applicatieonderdelen die XML-technieken ondersteunen. Het kan voorkomen dat
het XML-document met rekenkundige operatoren foutief wordt ingelezen door geïmplementeerde XML-componenten.
Operator
Operator AFD XPath
>
gt
<
lt
Rekenkundige operatoren
>=
ge
<=
le
=
eq
!=
ne

Reactie

Was dit nuttig?

Ja Nee
U heeft aangegeven dat u dit onderwerp niet nuttig vond ...
Zou u hieronder willen uitleggen waarom niet? Bij voorbaat dank!
Dank voor uw reactie.

Geef uw reactie op dit onderwerp.

Gebruik dit a.u.b. niet voor support vragen.
support@sivi.org

Verstuur Reactie