Changes for page Lab result file - SIKB0101 v14
Last modified by Robin Huisman on 2025/02/27 09:44
Change comment:
Uploaded new attachment "labresultaat_IndividueelGw.xml", version {1}
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -Lab result file - SIKB version 141 +Lab result file - Obsolete SIKB version 9 - Content
-
... ... @@ -8,24 +8,19 @@ 8 8 SIKB Version 9 is obsolete, and replaced with version 13 or version 14. Latest version can be found here: [[https:~~/~~/www.sikb.nl/datastandaarden/sikb0101-bodembeheer>>url:https://www.sikb.nl/datastandaarden/sikb0101-bodembeheer]] 9 9 {{/warning}} 10 10 11 -== What is a Lab result file ?==11 +== What is a Lab result file == 12 12 13 -A lab result file is an XML file contains all the lab results. The results are mapped tot their analyses samples. A lab result will be matched to the corresponding analyses sample based on the: “Labassignment Guid/SIKB-I D, projectCode, AnalysisSample Guid/SIKB-ID”13 +A lab result file is an XML file contains all the lab results. The results are mapped tot their analyses samples. A lab result will be matched to the corresponding analyses sample based on the: “Labassignment Guid/SIKB-Id, projectCode, AnalysisSample Guid/SIKB-Id” 14 14 15 +**Example files**: 15 15 16 - **Example files**:[[attach:labresultaat_MengmonsterGr.xml||rel="noopener noreferrer" target="_blank"]], [[attach:labresultaat_IndividueelGr.xml||rel="noopener noreferrer" target="_blank"]],[[attach:labresultaat_IndividueelGw.xml||rel="noopener noreferrer" target="_blank"]]17 +[[attach:labresultaat_IndividueelGr.xml||rel=" noopener noreferrer" target="_blank"]] [[attach:labresultaat_MengmonsterGr.xml||rel=" noopener noreferrer" target="_blank"]] 17 17 18 - **XSD**: Ask or SIKB Members can download from:[[https:~~/~~/www.sikb.nl/datastandaarden/richtlijnen/sikb0101>>url:https://www.sikb.nl/datastandaarden/richtlijnen/sikb0101]]19 +[[attach:labresultaat_IndividueelGw.xml||rel=" noopener noreferrer" target="_blank"]] 19 19 20 -**Controle XSLT**: 21 21 22 -**Domaintable files**: [[immetingen lookup v14.8.0.xml>>url:https://wiki.terraindex.com/bin/download/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/WebHome/immetingen%20lookup%20v14.8.0.xml?rev=1.2]] [[imsikb0101 lookup v14.8.0.xml>>url:https://wiki.terraindex.com/bin/download/Implementation%20documentation/Setting%20up%20Lab%20communication%20by%20REST%20services%20with%20TerraIndex/Lab%20assignment%20file/WebHome/imsikb0101%20lookup%20v14.8.0.xml?rev=1.1]] 23 -extracted from: **[[https:~~/~~/codes.sikb.nl>>url:https://codes.sikb.nl/]] ** 22 +\\[[image:IMSIKB0101 - Labresults.png]] 24 24 25 - 26 - 27 -[[image:IMSIKB0101 - Labresults.png]] 28 - 29 29 == File structure == 30 30 31 31
- Labresult_Controle.xsl
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.RobinHuisman - Size
-
... ... @@ -1,1 +1,0 @@ 1 -23.4 KB - Content
-
... ... @@ -1,405 +1,0 @@ 1 -<?xml version="1.0" encoding="utf-8"?> 2 -<!--XSLT Labresult_Controle.xsl versie 4.1 - SIKB0101 versie 14.8.0--> 3 -<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes" xmlns:imsikb0101="http://www.sikb.nl/imsikb0101" xmlns:immetingen="http://www.sikb.nl/immetingen" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:om="http://www.opengis.net/om/2.0" xmlns:sam="http://www.opengis.net/sampling/2.0" xmlns:sams="http://www.opengis.net/samplingSpatial/2.0" xmlns:spec="http://www.opengis.net/samplingSpecimen/2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema" 4 -xmlns:sikb="http://xslcontrole.sikb" 5 - xsi:schemaLocation="http://www.sikb.nl/imsikb0101 imsikb0101_v14.8.0.xsd"> 6 - <xsl:output method="xml" indent="yes" /> 7 - <xsl:template match="/"> 8 - <ArrayOfLogRecord> 9 - 10 - <!-- file dataflow check --> 11 - <xsl:if test="count(//imsikb0101:metaData/imsikb0101:dataflow) < 1"> 12 - <xsl:copy-of select="sikb:createRecord('WARNING','imsikb0101:metaData/imsikb0101:dataflow','Er zou een metadata/dataflow ingevuld moeten zijn.')"/> 13 - </xsl:if> 14 - <xsl:if test="lower-case(//imsikb0101:metaData/imsikb0101:dataflow) != lower-case('urn:imsikb0101:DatastroomType:id:1')"> 15 - <xsl:copy-of select="sikb:createRecord('WARNING','imsikb0101:metaData/imsikb0101:dataflow','Het veld metadata/dataflow zou ingevuld moeten zijn met: urn:imsikb0101:DatastroomType:id:1. Als dit geen Labresultaat-xml is, kies dan voor een andere controle xslt.')"/> 16 - </xsl:if> 17 - 18 - <xsl:if test="count(//imsikb0101:LabAssignment) != 1"> 19 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignment','Er moet precies 1 labopdracht aanwezig zijn.')"/> 20 - </xsl:if> 21 - <xsl:variable name="plGUID" select="replace(//imsikb0101:LabAssignment/imsikb0101:belongsToProject/@xlink:href,'#','')" /> 22 - <xsl:if test="$plGUID = ''"> 23 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignment/belongsToProject','Er moet Project gekoppeld zijn.')"/> 24 - </xsl:if> 25 - <xsl:if test="count(//imsikb0101:Project[@gml:id = $plGUID]) != 1"> 26 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Project', string-join(('Er moet een Project meegeleverd zijn; gml:id =', $plGUID), ' ') )"/> 27 - </xsl:if> 28 - 29 - <xsl:if test="count(//imsikb0101:LabAssignment//imsikb0101:LabAssignmentCertificate) != 1"> 30 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignmentCertificate','Er moet een LabAssignmentCertificate in LabAssignment aanwezig zijn.')"/> 31 - </xsl:if> 32 - 33 - <xsl:if test="count(//imsikb0101:LabAssignment//imsikb0101:SampleAnalysisRequest) = 0"> 34 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:SampleAnalysisRequest','Er moet een SampleAnalysisRequest in LabAssignment aanwezig zijn.')"/> 35 - </xsl:if> 36 - 37 - <xsl:for-each select="//imsikb0101:LabAssignment//imsikb0101:SampleAnalysisRequest"> 38 - <xsl:if test="count(.//imsikb0101:sample) != 1"> 39 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Sample','Er moet een Sample in SampleAnalysisRequest aanwezig zijn.')"/> 40 - </xsl:if> 41 - </xsl:for-each> 42 - 43 - <xsl:for-each select="//imsikb0101:Sample"> 44 - <xsl:variable name="samGUID" select="@gml:id" /> 45 - <xsl:variable name="specimenType" select="spec:specimenType/@xlink:href" /> 46 - 47 - <xsl:if test="$specimenType = ''"> 48 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Sample', string-join(('Er moet een specimenType in Sample aanwezig zijn; Sample gml:id =', $samGUID), ' ') )"/> 49 - </xsl:if> 50 - <xsl:if test="contains($specimenType,':10') or contains($specimenType,':7') or contains($specimenType,':8') or contains($specimenType,':9') "> 51 - <!-- AnalysisSamples/Materiaalmonsters/Zeefmonsters/Uitloogmonster schould contain Analysis--> 52 - <xsl:if test="count(descendant::immetingen:Analysis) > 0"> 53 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Analysis', string-join(('Er mag geen Analysis relationeel gekoppeld zijn in Sample; Sample gml:id =', $samGUID), ' ') )"/> 54 - </xsl:if> 55 - <xsl:if test="count(descendant::sam:relatedObservation[string-length(@xlink:href) > 1]) < 1"> 56 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Analysis', string-join(('Er moet een link naar Analysis in Sample aanwezig zijn; Sample gml:id =', $samGUID), ' ') )"/> 57 - </xsl:if> 58 - 59 - </xsl:if> 60 - </xsl:for-each> 61 - 62 - <xsl:for-each select="//immetingen:Analysis"> 63 - <xsl:variable name="arGUID" select="@gml:id" /> 64 - 65 - <xsl:variable select="string(om:result/@*)" name="arType"/> 66 - <xsl:if test="not(contains($arType,'immetingen:AnalyticResultType'))"> 67 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:AnalyticResult', string-join(('Er moet een AnalyticResult in Analysis aanwezig zijn; Analysis gml:id =', $arGUID), ' ') )"/> 68 - </xsl:if> 69 - 70 - <!-- Check AnalysisProcess --> 71 - <xsl:variable select="replace(om:procedure/@xlink:href,'#','')" name="prLiGUID"/> 72 - <xsl:variable select="om:procedure/*/@gml:id" name="prInGUID"/> 73 - 74 - <xsl:if test="concat($prInGUID,'', $prLiGUID) != ''"> 75 - <xsl:if test="count(//immetingen:AnalysisProcess[@gml:id = concat($prInGUID,'', $prLiGUID)]) != 1"> 76 - <xsl:copy-of select="sikb:createRecord('ERROR','immetingen:AnalysisProcess', string-join(('Analysis verwijst niet naar procedure van type: AnalysisProcess; Analysis gml:id =', $arGUID), ' ') )"/> 77 - </xsl:if> 78 - </xsl:if> 79 - 80 - </xsl:for-each> 81 - 82 - 83 - <xsl:apply-templates select="//imsikb0101:metaData" /> 84 - <xsl:apply-templates select="//imsikb0101:SourceSystem" /> 85 - <xsl:apply-templates select="//imsikb0101:LabAssignment" /> 86 - <xsl:apply-templates select="//imsikb0101:LabAssignmentRequest" /> 87 - <xsl:apply-templates select="//imsikb0101:LabAssignmentCertificate" /> 88 - <xsl:apply-templates select="//imsikb0101:AsbestosComposition" /> 89 - <xsl:apply-templates select="//immetingen:AnalyticResult" /> 90 - <xsl:apply-templates select="//immetingen:Package" /> 91 - <xsl:apply-templates select="//imsikb0101:featureMember" /> 92 - <!-- 93 - <xsl:apply-templates select="//imsikb0101:Address" /> 94 - <xsl:apply-templates select="//imsikb0101:Person" /> 95 - <xsl:apply-templates select="//imsikb0101:Organization" /> 96 - --> 97 - 98 - <!-- single fields check --> 99 - <xsl:apply-templates select="//imsikb0101:remarks" /> 100 - 101 - <!-- saxon levert nog een error in de RegExp : Waarom ???--> 102 - <xsl:apply-templates select="//om:resultTime" /> 103 - 104 - 105 - </ArrayOfLogRecord> 106 - </xsl:template> 107 - <!-- lengte /verplichting van metadata velden --> 108 - <xsl:template match="imsikb0101:metaData"> 109 - <xsl:if test="count(imsikb0101:application) != 1"> 110 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','application bij metaData moet aanwezig zijn.')" /> 111 - </xsl:if> 112 - <xsl:if test="count(imsikb0101:date) != 1"> 113 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','date bij metaData moet aanwezig zijn.')" /> 114 - </xsl:if> 115 - <xsl:if test="count(imsikb0101:supplier) != 1"> 116 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','supplier bij metaData moet aanwezig zijn.')" /> 117 - </xsl:if> 118 - <xsl:if test="count(imsikb0101:organisation) != 1"> 119 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','organisation bij metaData moet aanwezig zijn.')" /> 120 - </xsl:if> 121 - <xsl:if test="count(imsikb0101:version) != 1"> 122 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','version bij metaData moet aanwezig zijn.')" /> 123 - </xsl:if> 124 - <xsl:if test="count(imsikb0101:organisation) >0"> 125 - <xsl:if test="string-length(imsikb0101:organisation) > 60"> 126 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','Lengte van organisation bij metaData is meer dan 60 karakters.')" /> 127 - </xsl:if> 128 - </xsl:if> 129 - <xsl:if test="count(imsikb0101:version) >0"> 130 - <xsl:if test="string-length(imsikb0101:version) > 8"> 131 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:metaData','Lengte van version bij metaData is meer dan 8 karakters.')" /> 132 - </xsl:if> 133 - </xsl:if> 134 - </xsl:template> 135 - <!-- lengte (/verplichting) van overige velden --> 136 - <xsl:template match="imsikb0101:SourceSystem"> 137 - <xsl:if test="count(imsikb0101:applicationID) > 0"> 138 - <xsl:if test="string-length(imsikb0101:applicationID) > 20"> 139 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:SourceSystem',string-join(('Lengte van applicationID bij SourceSystem is meer dan 20 karakters.'),' '))" /> 140 - </xsl:if> 141 - </xsl:if> 142 - </xsl:template> 143 - <xsl:template match="imsikb0101:LabAssignment"> 144 - <xsl:if test="count(imsikb0101:customerCode) != 1"> 145 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignment','customerCode bij LabAssignment moet aanwezig zijn.')" /> 146 - </xsl:if> 147 - <xsl:if test="count(imsikb0101:customerCode) > 0"> 148 - <xsl:if test="string-length(imsikb0101:customerCode) > 20"> 149 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignment','Lengte van customerCode bij LabAssignment is meer dan 20 karakters.')" /> 150 - </xsl:if> 151 - </xsl:if> 152 - 153 - <!-- Check ProjectLeader is Person --> 154 - <xsl:variable select="replace(imsikb0101:projectLeader/@xlink:href,'#','')" name="prLiGUID"/> 155 - <xsl:variable select="imsikb0101:projectLeader/*/@gml:id" name="prInGUID"/> 156 - 157 - <xsl:if test="concat($prInGUID,'', $prLiGUID) != ''"> 158 - <xsl:if test="count(//immetingen:Person[@gml:id = concat($prInGUID,'', $prLiGUID)]) != 1"> 159 - <xsl:copy-of select="sikb:createRecord('ERROR','immetingen:Person', 'projectLeader van de labopdracht verwijst niet naar subject van type: imsikb0101:Person.' )"/> 160 - </xsl:if> 161 - </xsl:if> 162 - 163 - </xsl:template> 164 - <xsl:template match="imsikb0101:LabAssignmentRequest"> 165 - <xsl:if test="count(imsikb0101:orderNumber) >0"> 166 - <xsl:if test="string-length(imsikb0101:orderNumber) > 25"> 167 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignmentRequest',string-join(('Lengte van orderNumber bij LabAssignmentRequest is meer dan 25 karakters.'),' '))" /> 168 - </xsl:if> 169 - </xsl:if> 170 - </xsl:template> 171 - <xsl:template match="imsikb0101:LabAssignmentCertificate"> 172 - <xsl:if test="count(imsikb0101:labCertificatePdfLink) >0"> 173 - <xsl:if test="string-length(imsikb0101:labCertificatePdfLink) > 2000"> 174 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:LabAssignmentCertificate',string-join(('Lengte van labCertificatePdfLink bij LabAssignmentCertificate is meer dan 2000 karakters.'),' '))" /> 175 - </xsl:if> 176 - </xsl:if> 177 - <xsl:if test="string-length(imsikb0101:labCertificateNumber) <1"> 178 - <xsl:copy-of select="sikb:createRecord('WARNING','imsikb0101:LabAssignmentCertificate',string-join(('Het invullen van het labCertificateNumber is wenselijk voor een goede uitwisseling.'),' '))" /> 179 - </xsl:if> 180 - </xsl:template> 181 - <xsl:template match="imsikb0101:AsbestosComposition"> 182 - <xsl:if test="count(imsikb0101:searchPartDescription) >0"> 183 - <xsl:if test="string-length(imsikb0101:searchPartDescription) > 20"> 184 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:AsbestosComposition',string-join(('Lengte van searchPartDescription bij AsbestosComposition is meer dan 20 karakters.'),' '))" /> 185 - </xsl:if> 186 - </xsl:if> 187 - </xsl:template> 188 - <xsl:template match="immetingen:AnalyticResult"> 189 - <xsl:if test="count(immetingen:alphanunericValue) >0"> 190 - <xsl:if test="string-length(immetingen:alphanunericValue) > 20"> 191 - <xsl:copy-of select="sikb:createRecord('ERROR','immetingen:AnalyticResult',string-join(('Lengte van alphanunericValue bij AnalyticResult is meer dan 20 karakters.'),' '))" /> 192 - </xsl:if> 193 - </xsl:if> 194 - 195 - </xsl:template> 196 - <xsl:template match="immetingen:Package"> 197 - <xsl:if test="count(immetingen:barcode) > 0"> 198 - <xsl:if test="string-length(immetingen:barcode) > 15"> 199 - <xsl:copy-of select="sikb:createRecord('ERROR','immetingen:Package',string-join(('Lengte van barcode bij Package is meer dan 15 karakters.'),' '))" /> 200 - </xsl:if> 201 - </xsl:if> 202 - <xsl:if test="count(immetingen:name) > 0"> 203 - <xsl:if test="string-length(immetingen:name) > 20"> 204 - <xsl:copy-of select="sikb:createRecord('ERROR','immetingen:Package',string-join(('Lengte van name bij Package is meer dan 20 karakters.'),' '))" /> 205 - </xsl:if> 206 - </xsl:if> 207 - </xsl:template> 208 - <!-- 209 - <xsl:template match="imsikb0101:Address"> 210 - <xsl:variable select="@gml:id" name="prGUID" /> 211 - <xsl:if test="count(imsikb0101:districtCode) >0"> 212 - <xsl:if test="string-length(imsikb0101:districtCode) > 4"> 213 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van districtCode bij Address',$prGUID,'is meer dan 4 karakters.'),' '))" /> 214 - </xsl:if> 215 - </xsl:if> 216 - <xsl:if test="count(imsikb0101:letter) >0"> 217 - <xsl:if test="string-length(imsikb0101:letter) > 1"> 218 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van letter bij Address',$prGUID,'is meer dan 1 karakters.'),' '))" /> 219 - </xsl:if> 220 - </xsl:if> 221 - <xsl:if test="count(imsikb0101:letterAddition) >0"> 222 - <xsl:if test="string-length(imsikb0101:letterAddition) > 4"> 223 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van letterAddition bij Address',$prGUID,'is meer dan 4 karakters.'),' '))" /> 224 - </xsl:if> 225 - </xsl:if> 226 - <xsl:if test="count(imsikb0101:city) >0"> 227 - <xsl:if test="string-length(imsikb0101:city) > 80"> 228 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van city bij Address',$prGUID,'is meer dan 80 karakters.'),' '))" /> 229 - </xsl:if> 230 - </xsl:if> 231 - <xsl:if test="count(imsikb0101:zipcode) >0"> 232 - <xsl:if test="string-length(imsikb0101:zipcode) > 6"> 233 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van zipcode bij Address',$prGUID,'is meer dan 6 karakters.'),' '))" /> 234 - </xsl:if> 235 - </xsl:if> 236 - <xsl:if test="count(imsikb0101:street) >0"> 237 - <xsl:if test="string-length(imsikb0101:street) > 80"> 238 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Address',string-join(('Lengte van street bij Address',$prGUID,'is meer dan 80 karakters.'),' '))" /> 239 - </xsl:if> 240 - </xsl:if> 241 - </xsl:template> 242 - <xsl:template match="imsikb0101:Person"> 243 - <xsl:variable select="@gml:id" name="prGUID" /> 244 - <xsl:if test="count(imsikb0101:email) >0"> 245 - <xsl:if test="string-length(imsikb0101:email) > 100"> 246 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van email bij Person',$prGUID,'is meer dan 100 karakters.'),' '))" /> 247 - </xsl:if> 248 - </xsl:if> 249 - <xsl:if test="count(imsikb0101:fax) >0"> 250 - <xsl:if test="string-length(imsikb0101:fax) > 20"> 251 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van fax bij Person',$prGUID,'is meer dan 20 karakters.'),' '))" /> 252 - </xsl:if> 253 - </xsl:if> 254 - <xsl:if test="count(imsikb0101:telephoneNumber) >0"> 255 - <xsl:if test="string-length(imsikb0101:telephoneNumber) > 20"> 256 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van telephoneNumber bij Person',$prGUID,'is meer dan 20 karakters.'),' '))" /> 257 - </xsl:if> 258 - </xsl:if> 259 - <xsl:if test="count(imsikb0101:mobileNumber) >0"> 260 - <xsl:if test="string-length(imsikb0101:mobileNumber) > 20"> 261 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van mobileNumber bij Person',$prGUID,'is meer dan 20 karakters.'),' '))" /> 262 - </xsl:if> 263 - </xsl:if> 264 - <xsl:if test="count(imsikb0101:civilserviceNumber) >0"> 265 - <xsl:if test="string-length(imsikb0101:civilserviceNumber) > 9"> 266 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van civilserviceNumber bij Person',$prGUID,'is meer dan 9 karakters.'),' '))" /> 267 - </xsl:if> 268 - </xsl:if> 269 - <xsl:if test="count(imsikb0101:lastName) >0"> 270 - <xsl:if test="string-length(imsikb0101:lastName) > 60"> 271 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van lastName bij Person',$prGUID,'is meer dan 60 karakters.'),' '))" /> 272 - </xsl:if> 273 - </xsl:if> 274 - <xsl:if test="count(imsikb0101:firstName) >0"> 275 - <xsl:if test="string-length(imsikb0101:firstName) > 80"> 276 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Person',string-join(('Lengte van firstName bij Person',$prGUID,'is meer dan 80 karakters.'),' '))" /> 277 - </xsl:if> 278 - </xsl:if> 279 - </xsl:template> 280 - <xsl:template match="imsikb0101:Organization"> 281 - <xsl:variable select="@gml:id" name="prGUID" /> 282 - <xsl:if test="count(imsikb0101:name) >0"> 283 - <xsl:if test="string-length(imsikb0101:name) > 100"> 284 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Organization',string-join(('Lengte van name bij Organization',$prGUID,'is meer dan 100 karakters.'),' '))" /> 285 - </xsl:if> 286 - </xsl:if> 287 - <xsl:if test="count(imsikb0101:email) >0"> 288 - <xsl:if test="string-length(imsikb0101:email) > 100"> 289 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Organization',string-join(('Lengte van email bij Organization',$prGUID,'is meer dan 100 karakters.'),' '))" /> 290 - </xsl:if> 291 - </xsl:if> 292 - <xsl:if test="count(imsikb0101:fax) >0"> 293 - <xsl:if test="string-length(imsikb0101:fax) > 20"> 294 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Organization',string-join(('Lengte van fax bij Organization',$prGUID,'is meer dan 20 karakters.'),' '))" /> 295 - </xsl:if> 296 - </xsl:if> 297 - <xsl:if test="count(imsikb0101:telephoneNumber) >0"> 298 - <xsl:if test="string-length(imsikb0101:telephoneNumber) > 20"> 299 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Organization',string-join(('Lengte van telephoneNumber bij Organization',$prGUID,'is meer dan 20 karakters.'),' '))" /> 300 - </xsl:if> 301 - </xsl:if> 302 - <xsl:if test="count(imsikb0101:mobileNumber) >0"> 303 - <xsl:if test="string-length(imsikb0101:mobileNumber) > 20"> 304 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:Organization',string-join(('Lengte van mobileNumber bij Organization',$prGUID,'is meer dan 20 karakters.'),' '))" /> 305 - </xsl:if> 306 - </xsl:if> 307 - </xsl:template> 308 - --> 309 - <xsl:template match="imsikb0101:remarks"> 310 - <xsl:if test="string-length() > 4000"> 311 - <xsl:copy-of select="sikb:createRecord('ERROR','imsikb0101:remarks','Lengte van remarks is meer dan 4000.')" /> 312 - </xsl:if> 313 - </xsl:template> 314 - 315 -<!-- xmlns:xs="http://www.w3.org/2001/XMLSchema" --> 316 -<!-- timePosition fix test (PAR) 317 - <xsl:template match="om:resultTime"> 318 - <xsl:if test="count(//gml:timePosition) != 1"> 319 - <xsl:copy-of select="sikb:createRecord('ERROR','on:resultTime','Er moet een gml:timePosition in om:resultTime aanwezig zijn.')"/> 320 - </xsl:if> 321 - <xsl:if test="count(//gml:timePosition) != 0"> 322 - <xsl:variable select="//gml:timePosition" name="lvDateTime"/> 323 - <xsl:if test="not(lvDateTime castable as xs:date)"> 324 - <xsl:copy-of select="sikb:createRecord('ERROR','gml:timePosition','gml:timePosition is niet geldig.')" /> 325 - </xsl:if> 326 - </xsl:if> 327 - </xsl:template> 328 ---> 329 - 330 -<!-- werk niet met deze regexp? 331 - <xsl:template match="om:resultTime"> 332 - <xsl:if test="count(//gml:timePosition) != 1"> 333 - <xsl:copy-of select="sikb:createRecord('ERROR','on:resultTime','Er moet een gml:timePosition in om:resultTime aanwezig zijn.')"/> 334 - </xsl:if> 335 - <xsl:if test="count(//gml:timePosition) != 0"> 336 - <xsl:variable select="//gml:timePosition" name="lvDateTime"/> 337 - <xsl:variable name="DTEXP" select ='"^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$"'/> 338 - <xsl:choose> 339 - <xsl:when test="$lvDateTime = ''"> 340 - <xsl:copy-of select="sikb:createRecord('ERROR','gml:timePosition','gml:timePosition is niet gevuld.')" /> 341 - </xsl:when> 342 - <xsl:when test="matches($lvDateTime, $DTEXP, 'm') "> 343 - </xsl:when> 344 - <xsl:otherwise> 345 - <xsl:copy-of select="sikb:createRecord('ERROR','gml:timePosition','gml:timePosition is niet geldig.')" /> 346 - </xsl:otherwise> 347 - </xsl:choose> 348 - </xsl:if> 349 - </xsl:template> 350 - --> 351 - 352 - <xsl:template match="om:resultTime/gml:TimeInstant"> 353 - <xsl:if test="count(gml:timePosition) > 0"> 354 - <xsl:variable select="gml:timePosition" name="lvDateTime"/> 355 - <xsl:if test="not($lvDateTime castable as xs:dateTime)"> 356 - <xsl:copy-of select="sikb:createRecord('ERROR','gml:timePosition', string-join(('gml:timePosition is niet geldig.', $lvDateTime), ' '))" /> 357 - </xsl:if> 358 - </xsl:if> 359 - </xsl:template> 360 - 361 - <xsl:template match="imsikb0101:featureMember"> 362 - <xsl:variable name="GmlId" select="substring-after(./*/@gml:id,'_')"/> 363 - <xsl:variable name="IdentificationImmetingen" select="./*/immetingen:identification/immetingen:NEN3610ID/immetingen:lokaalID"/> 364 - <xsl:variable name="IdentificationImSikb" select="./*/imsikb0101:identification/immetingen:NEN3610ID/immetingen:lokaalID"/> 365 - <xsl:variable name="ElementName" select="name(./*)"/> 366 - <xsl:choose> 367 - 368 - <xsl:when test="$IdentificationImmetingen != ''"> 369 - <xsl:if test="$IdentificationImmetingen != $GmlId"> 370 - <xsl:copy-of select="sikb:createRecord('ERROR',$ElementName,string-join(($ElementName,'met gml:id (',$GmlId,') heeft een afwijkend lokaalId (',$IdentificationImmetingen,').' ),' '))" /> 371 - </xsl:if> 372 - </xsl:when> 373 - 374 - <xsl:otherwise> 375 - <xsl:if test="$IdentificationImSikb != $GmlId"> 376 - <xsl:copy-of select="sikb:createRecord('ERROR',$ElementName,string-join(($ElementName,'met gml:id (',$GmlId,') heeft een afwijkend lokaalId (',$IdentificationImSikb,').' ),' '))" /> 377 - </xsl:if> 378 - </xsl:otherwise> 379 - 380 - </xsl:choose> 381 -</xsl:template> 382 - 383 - 384 - 385 - 386 - <!-- verplichte velden --> 387 - 388 - <!-- functies --> 389 - <xsl:function name="sikb:createRecord"> 390 - <xsl:param name="type" /> 391 - <xsl:param name="title" /> 392 - <xsl:param name="message" /> 393 - <xsl:element name="LogRecord"> 394 - <xsl:element name="Type"> 395 - <xsl:copy-of select="$type" /> 396 - </xsl:element> 397 - <xsl:element name="Title"> 398 - <xsl:copy-of select="$title" /> 399 - </xsl:element> 400 - <xsl:element name="Message"> 401 - <xsl:copy-of select="$message" /> 402 - </xsl:element> 403 - </xsl:element> 404 - </xsl:function> 405 -</xsl:stylesheet>