Syntaxis - Versie 1

Inhoudsopgave

1. Inleiding

2. Toepassingsgebied

3. Tekenset

3.1. Latin-1
3.2. Gereserveerde tekens

4. Structuur

4.1. Algemene structuur
4.2. Structuur van een rubriek
4.3. Structuur van een segment
4.4. Structuur van een gegevenselement

5. Compressietechnieken

5.1. Uitsluiten van segmenten
5.2. Weglaten van gegevenselementen
5.3. Afkappen van gegevenselementen
5.4. Weglaten van samenstellende gegevenselementen
5.5. Afkappen van samenstellende gegevenselementen

6. Segmenten

6.1. Segment XGH, header van een groep uitwisselingseenheden
6.2. Segment XGT, trailer van een groep uitwisselingseenheden
6.3. Segment XEH, header van een uitwisselingseenheid
6.4. Segment XET, trailer van een uitwisselingseenheid
6.5. Segment XRH, header van een rubriek
6.6. Segment XRT, trailer van een rubriek

7. Formele gramatica

 

1. Inleiding

Deze norm beschrijft de regels op toepassingsniveau voor het structureren van de gebruikersgegevens en de bijbehorende dienstgegevens met het oog de uitwisseling van informatie.

De beschreven syntaxis is gebaseerd op de ISO 9735-norm, die door de Economische Commissie voor Europa van de Verenigde Naties (UNECE) geadopteerd is als syntaxisregels voor elektrische uitwisseling van gegevens in administratie, handel en transport (EDIFACT).

Dit is versie 1 van deze norm.

 

2. Toepassingsgebied

Deze syntaxis geldt voor alle gegevensuitwisselingen in het kader van de Assurnet2-architectuur, waarbij verschillende partners betrokken zijn ( bijvoorbeeld de log-deal, het nieuwe antwoordrecord, ... ).

 

3. Tekenset

3.1. Latin-1

Tenzij de bij de gegevensuitwisseling betrokken partners overeenkomen om een andere tekenset te gebruiken, wordt de Latin-1 (ISO 8859-1) gebruikt, met uitzondering van het teken NUL (hexadecimaal : 00). Deze set bevat alle tekens die gebruikt worden in Westeuropese talen, waaronder het Nederlands en het Frans.

Het teken NUL (hexadecimaal : 00) heeft in de meeste ontwikkelingsomgevingen een bijzondere functie, en mag daarom niet worden gebruikt in een uitwisseling.

3.2. Gereserveerde tekens

De volgende tekens hebben een speciale functie:

    de apostrof (') geeft het segmenteinde aan het plusteken (+) scheidt de segment-header van de gegevenselementen de dubbele punt (:) scheidt samenstellende gegevenselementen van elkaar het vraagteken (?) annuleert de bijzondere functie van de gereserveerde tekens. ? voor ', +, : en ? geeft deze tekens hun gewone betekenis. Zo betekent 10?+10=20 bijvoorbeeld 10+10=20. Een gewoon vraagteken wordt dus voorgesteld door ??.

 

4. Structuur

De segmenten moeten in een groep van uitwisselingseenheden weergegeven worden in de hieronder voorgestelde volgorde.

Een groep kan meerdere uitwisselingseenheden bevatten.

Een uitwisselingseenheid kan meerdere rubrieken bevatten.

Een rubriek bestaat uit segmenten (en rubrieken).

Een segment bestaat uit enkelvoudige en/of samengestelde gegevenselementen.

4.1. Algemene structuur

Een groep uitwisselingseenheden bevat :

    Header van de groep   XGH   (verplicht) Header van de uitwisselingseenheid   XEH   (verplicht) Segment(en) met gebruikersgegevens       (volgens noodzaak) Rubriek(en)       (volgens noodzaak) Trailer van de uitwisselingseenheid   XET   (verplicht) Trailer van de groep   XGT   (verplicht)

4.2. Structuur van een rubriek

Een rubriek bevat:

    Header van de rubriek   XRH   (verplicht) Segment met rubriekgegevens       (verplicht) Segment(en) met gebruikersgegevens       (volgens noodzaak) Rubriek(en)       (volgens noodzaak) Trailer van de rubriek   XRT   (verplicht)

4.3. Structuur van een segment

Een segment bevat:

    Segmentcode       (verplicht) Scheidingsteken van gegevenselementen       (verplicht) Enkelvoudige of samengestelde gegevenselementen       (volgens noodzaak) Eindteken van het segment       (verplicht)

4.4. Structuur van een gegevenselement

Een gegevenselement bevat:

    Een enkelvoudig gegevenselement, of een samengesteld gegevenselement met samenstellend gegevenselement Scheidingstekens van samenstellende gegevenselementen Scheidingsteken van gegevenselementen

Een enkelvoudig gegevenselement bevat slechts één gegevenselement-waarde.

Een samengesteld gegevenselement bevat meerdere samenstellende gegevenselementen.

Een samenstellend gegevenselement bevat slechts één gegevenselement-waarde.

Na het laatste samenstellende gegevenselement wordt geen scheidingsteken van samenstellende gegevenselementen geplaatst; na het laatste gegevenselement wordt geen scheidingsteken van gegevenselementen geplaatst.

 

5. Compressietechnieken

Niet-significante tekens van gegevenselementen moeten worden weggelaten. Deze tekens worden niet verstuurd: bijvoorbeeld de voorloopnullen van een numerieke waarde of de opvultekens van een alfanumerieke waarde.

Op te merken valt dat één enkele nul voor een decimale punt betekenis kan hebben, en dat een nul betekenis kan hebben als dit in de gegevenselementen is gespecificeerd.

De hierna vermelde regels gelden voor het comprimeren van uitwisselingseenheden.

In onderstaande voorbeelden, staat "TAG" voor de segmentcode, "DE" voor een gegevenselement en "CE" voor een samenstellend gegevenselement.

5.1. Uitsluiten van segmenten

Segmenten zonder gegevenselementen moeten worden weggelaten (samen met hun code).

5.2. Weglaten van gegevenselementen

Gegevenselementen worden geïdentificeerd door hun positie in een segment, zoals vastgelegd in de TELEBIB segmentenrepertorium. Als een door een ander gegevenselement gevolgd gegevenselement wordt weggelaten, dan wordt een scheidingsteken van een gegevenselement verstuurd in plaats van het gegevenselement zelf.

TAG+DE+DE+++DE+DE+DE' Twee gegevenselementen worden weggelaten.

5.3. Afkappen van gegevenselementen

Als één of meer gegevenselementen worden weggelaten op het einde van een segment, dan mag dit worden afgekapt met het segmenteindeteken; in dit geval worden de scheidingstekens van weggelaten gegevenselementen niet verstuurd.

TAG+DE+DE+++DE' In het voorbeeld van punt 5.2., werden de laatste twee gegevenselementen weggelaten en werd het segment afgekapt.

5.4. Weglaten van samenstellende gegevenselementen

Samenstellende gegevenselementen worden geïdentificeerd door hun positie in een samengesteld gegevenselement. Als een samenstellend gegevenselement wordt weggelaten, dan wordt een scheidingsteken van een samenstellend gegevenselement verstuurd in plaats van het samenstellende gegevenselement zelf.

TAG+DE+CE:CE+CE:::CE' Twee samenstellende gegevenselementen werden weggelaten in het derde gegevenselement.

5.5. Afkappen van samenstellende gegevenselementen

Als één ( of meer ) samenstellende gegevenselementen worden weggelaten aan het einde van een samengesteld gegevenselement, dan mag dit worden afgekapt met het scheidingsteken van gegevenselementen; in dit geval worden de scheidingstekens van weggelaten samenstellende gegevenselementen niet verstuurd.

TAG+DE+CE+CE' In het voorbeeld van punt 5.4., werd het laatste samenstellend gegevenselement van het eerste samengestelde gegevenselement weggelaten, alsook de laatste drie samenstellende gegevenselementen van het tweede samengestelde gegevenselement. In beide gevallen werd het samengestelde gegevenselement afgekapt; dat blijkt in het eerste geval uit het scheidingsteken van gegevenselementen, en in het tweede geval uit het eindteken van het segment.

 

6. Segmenten

6.1. Segment XGH, header van een groep uitwisselingseenheden

6.1.1. Functie

Een groep van uitwisselingseenheden openen

6.1.2. Inhoud

    Versienummer van de syntaxis (verplicht)
    Identificatie van de verzender (verplicht)
    Identificatie van de ontvanger (verplicht)
    Groepstype

6.2. Segment XGT, trailer van een groep uitwisselingseenheden

6.2.1. Functie

Een groep uitwisselingseenheden sluiten

6.2.2. Inhoud

Versienummer van de syntaxis (verplicht)

6.3. Segment XEH, header van een uitwisselingseenheid

6.3.1. Functie

Een uitwisselingseenheid openen en specificeren

6.3.2. Inhoud

    Type uitwisselingseenheid (verplicht)
    Versienummer van de uitwisselingseenheid (verplicht)
    Code uitwisselingseenheid/actie
    Identificatie van de uitwisselingseenheid bij de verzender
    Identificatie van de uitwisselingseenheid bij de ontvanger
    Domein
    Terugmeldingscode toepassing
    Foutcode
    Aanduiding muntomzetting
    Uitgiftedatum uitwisselingseenheid
    Details betreffende de uitwisselingseenheid

6.4. Segment XET, trailer van een uitwisselingseenheid

6.4.1. Functie

Een uitwisselingseenheid sluiten

6.4.2. Inhoud

Type uitwisselingseenheid (verplicht)

6.5. Segment XRH, header van een rubriek

6.5.1. Functie

Een rubriek openen en het niveau ervan aanduiden

6.5.2. Inhoud

Niveaunummer van de rubriek (verplicht)

6.6. Segment XRT, trailer van een rubriek

6.6.1. Functie

Een rubriek sluiten

6.6.2. Inhoud

Niveaunummer van de rubriek (verplicht)

 

7. Formele gramatica

Dit deel beschrijft de formele grammatica van de syntaxis van Assurnet2 in BNF-notatie.

exchange is de wortel van de boom, en komt overeen met de groep uitwisselingseenheden in de beschrijvende tekst.

exchange:

      exchange-group-header exchange-unit-list exchange-group-trailer

exchange-group-header:

      XGH+ syntax-version + address + address '

      XGH+ syntax-version + address + address + string '

exchange-group-trailer:

      XGT+ syntax-version '

exchange-unit-list:

      exchange-unit

      exchange-unit-list exchange-unit

exchange-unit:

      exchange-unit-header segment-list block-list exchange-unit-trailer

exchange-unit-header:

      XEH+ string + exchange-unit-version '

      XEH+ string + exchange-unit-version + string '

      XEH+ string + exchange-unit-version + stringopt + string '

      XEH+ string + exchange-unit-version + stringopt + stringopt + string '

      XEH+ string + exchange-unit-version + stringopt + stringopt + stringopt + string '

exchange-unit-trailer:

      XET+ string '

segment-list:

      segmentopt

      segment-list segment

block-list:

      blockopt

      block-list block

segment:

      tag + data-element-list '

block:

      block-header id-segment segment-list block-list block-trailer

block-header:

      XRH+ number '

block-trailer:

      XRT+ number '

id-segment:

      segment

tag:

      tag-letter tag-letter tag-letter

data-element-list:

      data-element

      data-element-list list-plus data-element

list-plus:

      +

      list-plus +

data-element:

      simple-data-element

      composite-data-element

      simple-data-element

      string

      number

composite-data-element:

      simple-data-element

      composite-data-element list-colon simple-data-element

list-colon:

      :

      list-colon :

syntax-version:

      1

      01

exchange-unit-version:

      digit

      digit digit

address:

      string

      string : string

string:

      init-string

      string list-spaceopt init-string

init-string:

      not-reserved

      escape-sequence

list-space:

      spatie

      list-space spatie

number:

      digit-list

      - digit-list

digit-list:

      digit

      digit-list digit

digit:

      één van de volgende cijfers

      0 1 2 3 4 5 6 7 8 9

escape-sequence:

      ?+

      ?:

      ?'

      ??

tag-letter:

      één van de volgende letters

      A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

not-reserved:

      een teken van de tekenset Latin-1 uitgezonderd + : ' ?, de binaire nul en de spatie