Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Eneste undtagelse for ovenstående er brug af felter fra section templates, da man kan have den samme template flere gange i en blanket og feltnavnene derfor ikke vil være unikke. Her skal du i stedet pege på både sektionens og feltets navn, som følger $sektion1//felt1

XPath operatorer

Operator

Beskrivelse

Eksempel

+

Addition af værdier

6 + 4

$felt + $felt2

-

Subtraktion af værdier

6 - 4

$felt1 - $felt2

*

Multiplikation af værdier

6 * 4

$felt1 * $felt2

div

Division af værdier

6 div 4

$felt1 div $felt2

=

Lighedsudtryk

$felt1/text() = ‘abc’

$skiftkommune = 'ja'

= ( )

Tjek om værdien ligger i en liste

$felt1 = ('a', ‘b', 'c’)

contains

Tjek om feltets værdi indeholder en del

contains($felt1, 'a')

!=

Ikke-lighedsudtryk

$beloeb != 1000

$felt2 != $felt1

<

Mindre end

$beloeb < 5000

<=

Mindre end eller lig med

$beloeb <= 5000

>

Større end

$beloeb > 5000

>=

Større end eller lig med

$beloeb >= 5000

or

Eller – enten det ene eller det andet udtryk skal være opfyldt

$beloeb > 5000 or $momsfri = 'ja'

and

Og – begge udtryk skal være opfyldt

$beloeb < 5000 and $told != 'nej'

not

"not" kan bruges til at validere, hvis et udtryk ikke opfyldes

Eksempel 1:

I følgende valideres der, hvis feltets indhold er "æ":

$control-1 = 'æ'

I følgende valideres der ikke, hvis feltet er "æ":

not ($control-1 = 'æ')


Eksempel 2:

I følgende valideres der, hvis feltet indeholder "æ":

contains($control-1, 'æ')

I følgende valideres der, hvis feltet ikke indeholder "æ":

not (contains($control-1, 'æ'))

Eksempler på valideringsregler

...

I tabellen nedenfor ses et par eksempler på, hvordan valideringsregler for datoer kan se ud

Regel

Formel

Dato må ikke være efter 22. juni 2022

. <= xs:date('2022-06-22')

Dato skal være før 22. juni 2022

. < xs:date('2022-06-22')

Dato må ikke være efter dags dato

. <= current-date()

Dato må ikke være mere end 7 dage efter dags dato

days-from-duration(. - current-date()) <= 7

Dato er den første i en måned

substring(string(.), 9, 2) = '01'

Tekstfelter

De mest almindelige valideringsregler på tekstfelter går på enten længden af feltet eller hvorvidt værdien af feltet har et bestemt mønster, eks. 8 cifre til et CVR-nummer.

Længden af feltet kan valideres med indbyggede valideringsregler i Orbeon, mens at formatet af et tekstfelt kan valideres ved at bruge såkaldte Regex-udtryk (https://en.wikipedia.org/wiki/Regular_expression ) og functionen matches som i eksemplerne nedenfor

Regel

Formel

CVR- eller telefonnummervalidering (8-cifre)

matches(., '^\d{8}$')

CPR-validering (6 + 4 cifre med bindestreg)

matches(., '^\d{6}-\d{4}$')

CPR-validering (6 + 4 cifre uden bindestreg)

matches(., '^\d{10}$')

CPR-validering (6 + 4 cifre og valgfri bindestreg)

matches(., '^\d{6}-?\d{4}$')

Kun bogstaver og tal

matches(., '^[A-Za-z0-9]+$')

Kun bogstaver

matches(., '^[A-Za-z]+$')

Når man skal til at lave disse Regex-udtryk til sine valideringer, så kan et værktøj som eksempelvis https://regex101.com/ være nyttigt til at teste og forstå, hvad de enkelte dele af udtrykket betyder. Du finder et Regex cheatsheet her: Regex cheatsheet

Tjekbokse

Hvor dropdowns og radio buttons bar har en enkelt strengværdi og derfor kan valideres med de generiske operatorer beskrevet ovenfor, så opfører tjekbokse sig lidt anderledes

Regel

Formel

Single-checkbox er markeret

. = true()

Single-checkbox er ikke markeret

. = false()

Værdien A er valgt blandt flere tjekbokse

contains(., 'A')

Mindste to valgmuligheder valgt

count(xxf:split(., ' ')) >= 2

Vedhæftninger

På vedhæftningsfelter er der lidt anderledes muligheder for valideringsregler, som gør det nemt at validere på størrelse og type af vedhæftninger

...

I tabellen nedenfor ses en oversigt over de tilgængelige værdier, og hvilke logins de matcher:

Værdi

Indhold

Personlig

NemID

MitID

NemID medarbejdersignatur

MitID Erhverv

Personligt eID

Medarbejder

eID Business

xxf:get-request-attribute('nemlogin-id')

Loginet's ID

X

X

X

X

xxf:get-request-header('x-sector9-saml-commonname')

Brugerens navn

X

X

X

X

xxf:get-request-header('x-sector9-saml-mail')

Brugerens mail, hvis oplyst

(X)

(X)

(X)

(X)

xxf:get-request-header('x-sector9-saml-cvrnumberidentifier')

CVR-nummer hørende til brugerens medarbejdersignatur. Kan også trækkes fra personligt NemLog-in for enkeltmandsvirksomheder og lignende

(X)

X

xxf:get-request-header('x-sector9-saml-cprnumberidentifier')

Brugerens CPR-nummer

X

X

xxf:get-request-header('x-sector9-saml-legalpersonidentifier')

ID på medarbejder eID

X

xxf:get-request-header('x-sector9-saml-personidentifier')

ID på personlig eID

X

xxf:get-request-header('x-sector9-saml-birthdate')

Brugerens fødselsdag

(X)

(X)

(X)

(X)

X = Værdien vil altid hente et resultat på signaturtypen

...