Særlig service vejvisning Denne dokumentation er udarbejdet af Arbejdsgruppen for standardisering af vejdata (Vejportal) under en domæne-komité for vejsektoren i regi af XML-projektet i Ministeriet for Videnskab, Teknologi og Udvikling. Baggrund og kommissorium Kommissorium for domæne-komitéen for Vejsektoren samt kommusorium for arbejdsgruppen under domæne-komitéen kan læses i deres fulde udstrækning i bilag 1 og bilag 2. Særligt skal fremhæves fra kommissorium for domæne-komitéen at det forestående standardiseringsarbejde i vejsektoren i første omgang har som mål at udarbejde: et forslag til en eller flere udvekslingsstandarder, der vil lette og effektivisere vejbestyrelsernes opgaver med at varetage det samlede offentlige vejnet og et forslag til en eller flere udvekslingsstandarder, der er aktuelle og forretningsmæssigt interessante for institutioner og forvaltninger i vejsektoren. For arbejdsgruppen under domæne-komitéen skal det særligt fremhæves at Udviklingsgruppen under Vejportal har opstillet en liste over aktiviteter og services til realisering i 2004, herunder en række webservices. Arbejdsgruppens standardiseringsarbejde har taget sit udgangspunkt i den højest prioriterede webservice Særlig serviceskiltning. Formålet har været at gøre arbejdet anvendelsesorienteret og mere overskueligt. Bilag 5 beskriver den anvendte proces og metode. Formål Formålet har været at bibringe overblik over det nødvendige data- og informationsindhold til at tilfredsstille den use case at en ekstern interessent (en borger, en borgerservice-løsning, et vejadministrationssystem) igangsætter en ansøgning om etablering af særlig service vejvisning. Det er endvidere formålet at de her dokumenterede klasser bringes igennem OIOXML standardiseringsprocessen på NDR-niveau. Der henvises til bilag 3 omkring Vejregler for vejvisning og specifikt for Servicevejvisning på almindelige veje. Sagsbehandlingen for en given ansøgning er dokumenteret og diagrammeret i bilag 4. For at skabe fokus har arbejdsgruppen valgt at fokusere på følgende use case: 1
Særlig servicevejvisning Udfyld ansøgning Vejbestyrelse Validér ansøgning Skiltefabrik Ansøger Økonomiafdeling Ansøg Entreprenør Figur 1: Use case der beskriver det scenarium at en ansøger interagerer med servicen Særlig servicevejvisning : Der sker 3 aktioner. En ansøgning skal udfyldes med informationer. Ansøgningen skal valideres har vi informationer nok, er de korrekte og fyldestgørende? Endelig skal igangsættes en sagsbehandling af ansøgningen (Ansøg). Oversigt over de definerede data-klasser Arbejdsgruppens arbejde mundede ud i at: Fra ansøger er det nødvendigt at modtage 1) kontakt-informationer omkring ansøgeren, 2) et skiltegrundlag (hvilket skilt ønskes samt angivelse af kategori) og endelig 3) punkt-på-vej dvs. en angivelse af hvorfra ansøgeren ønsker service vejvisningen skal begynde fra. 1 Det blev dokumenteret at 1) kontakt-informationer kunne arves fra WebGT (http://rep.oio.dk/vd.dk/xml/schemas/2004/02/16/vd_addressee.xsd) og at indholdet af 2) dækkes af især et generelt bemærkningsfelt (SærligBemærkning / SpecialRemarksText) men afhænger i høj grad af den applikationskontekst den er et resultat af. Den er derfor ikke i fokus her. 3) er interessant fordi a) punkt-på-vej kan udtrykkes på mange forskellige måder alt efter use casen og hvem aktøren er og b) der er indtil nu ingen fælles, sektor-tværgående måde at udtrykke dette. Arbejdsgruppen så det derfor som arbejdsfokus at udtrykke et punkt-på-vej der kan tilfredsstille alle aktører rundt om use casen. 1 En endelige, fysiske placering af skiltene til særlig service-vejvisning kan og skal ansøgeren ikke udpege. Dette er en vurdering og afgørelse for den lokale vejbestyrer-myndighed. Endvidere er det arbejdsgruppens konklusion at det i forbindelse med særlig servicevejvisning kun giver mening af tale om punkt på vej i betydningen af et kryds, da vejvisning og skiltning altid tager sit udgangspunkt fra et kryds. 2
kryds krydsvejid +vejid1[1] : vejid +vejid2[1] : vejid +særligbemærkning[0..1] : særligebemærkningtype krydsvejnavn +StreetName[1] : StreetNameType +StreetName[1] : StreetNameType +KommuneKode[1] : KommuneKodeType +særligbemærkning[0..1] : særligebemærkningtype «oio_kandidat» AddressPostal XKOM_AddressPostal..xkom.dk/.../2004/10/03/} PointGML punkt i overensstemmelse med GML} -srsname[0..1] : String -coordinates[1] : String krydsfotid Er under planlægning} -knudepunktid[1] AdresseVejPunkt -kommunenavn[1] : KommuneKodeType -særligbemærkning[0..1] : særligebemærkningtype srsname er referencesystem se tabel. Fx srsname="epsg:25832" Coordinates er en streng indeholdende koordinaterne. Fx "512612.56, 6217217.99". Koordinaterne adskilles af komma og har dimension lig antallet af koordinater. vejid Vejbestyrer VejNr VejDel Kilometrering} +Vejbestyrer[1] : vejbestyrer +VejNr[1] : vejnrtype +VejDel[1] : vejdeltype -meter[1] : metertype «simpletype» vejbestyrertype pattern=\d(3)} «simpletype» vejnrtype pattern=\d(4)} «simpletype» vejdeltype type=string} «simpletype» metertype type=long} «simpletype» særligebemærkningtype type=string[255]} MatrikelVejPunkt -LandownerAssociationIdentifier[1] : LandownerAssociationIdentifierType -LandRegisterIdentifier[1] : LandRegisterIdentifierType -særligbemærkning[0..1] : særligebemærkningtype «oio_not_standard» KommuneKodeType../oes.dk/../2003/08/01/ type=integer} «oio_cc» LandRegisterIdentifierType..kms.dk/../2003/02/24/ dvs. matrikelnr. type = String} «oio_cc» LandownerAssociationIdentifierType..kms.dk/../2003/02/24/ dvs. ejerlavskode type=nonnegativinteger} «oio_cc» StreetNameType DKCC_StreetName../ebxml/../dkcc/2003/02/13/ type=string[40]} Figur 2: Overordnet konceptuel UML-model (dansk udgave) over identificerede klasser, deres overordnede sammenhæng. Samtidig er basale entiteter og typer udsøgt i ISB en og angivet i modellen med namespace og navn på XML Schema. Det er med grå baggrundsfarve angivet hvilke klasser denne NDR-standardisering retter sig imod. 3
Dokumentationsguide Særlig Servicevejvisning KontaktPerson Privatperson:PersonType Adressat Virksomhed Adresse -Vejnavn -Husnummer -Etage -Dørnummer -Postnummer -Distrikt Telefonnummer -Beskrivelse -Landekode -Områdekode -Nummer -Lokal Emailadresser -Navn -Attentionperson : PersonType -Afdeling PersonType -Fornavne -Mellemnavne -Efternavn Figur 3: KontaktPerson som den er defineret i WebGT (http://rep.oio.dk/vd.dk/xml/schemas/2004/02/16/vd_addressee.xsd) 4
Tabel 1: Oversigt over anvendte OIO-komponenter Anvendte OIO komponenter Navn på schema KMS CadastralDistrictIdentifier KMS LandParcelIdentifier DKCC StreetName CPR AuthorityCode CPR StreetCode CPR MunicipalityName CPR MunicipalityCode Namespace../kms.dk/../2005/03/11/ do.../ebxml/../2005/03/15/../cpr.dk/../2005/03/18/ do. do. do. Tabel 2: Oversættelse af entiteter til brug i logisk model Oversættelse af entiteter fra dansk til engelsk til logisk model Dansk Engelsk Bemærkninger Kryds JunctionStructure MatrikelVejPunkt AdresseVejPunkt KrydsVejId KrydsVejNavn VejID VejID1 VejID2 VejNavn1 VejNavn2 SærligBemærkning VejDel Meter StreetPointByParcelStructure StreetPointByAddressStructure JunctionByStreetIdentifierStructure JunctionByStreetNameStructure StreetIdentifierStructure JunctionStreet1IdentifierStructure JunctionStreet2IdentifierStructiure JunctionStreet1Name JunctionStreet2Name SpecialRemarksText StreetSectionIdentifier StreetMeterMeasure Anvendelsesområdet som det er beskrevet og afdækket i use casen (Figur 1) stiller en række krav til de forskellige måder aktøren Ansøger kan og skal kunne udtrykke punkt på vej. Alle udtryksmåder er beskrevet i nedenstående tabel sammen med deres formål og tænkte anvendelse. 5
Tabel 3: Oversigt over de forskellige måder at udtrykke punkt på vej Punkt på vej aggregater Klasse Formål Anvendelse JunctionByStreet- IdentifierStructure KrydsVejId JunctionByStreet- NameStructure KrydsVejNavn Simple typer Ved at angive 2 unikke, kodebaserede vejid er kan man udpege et kryds. En særligbemærkning er tilladt. Dels kan det være nødvendigt at angive hvilket vejbestyrersystem VejID en kommer fra pga. forskelle i implementation og dermed syntaks og dels kan der være tilfælde, hvor VejId(1) krydser VejId(2) 2 gange og dermed danner 2 vejkryds med samme ID fx hvis VejId(1) danner en hestesko på VejId(2) Ved angivelse af 2 vejnavne samt KommuneKode kan vejkryds udpeges. Klasse Formål Anvendelse StreetIdentifierStructure VejID StreetSectionIdentifier VejDel StreetMeterMeasure Meter Identifikation af en vej. En kode bestående af koderne for: Vejbestyrer VejNr VejDel Kilometrering (i meter) Se ovenfor Se ovenfor Struktureret, kodebaseret udveksling fra system til system typisk fra vejbestyrersystemer og typisk i de use cases hvor aktøreren er sagsbehandler hos en vejmyndighed og igangsætter en sagsbehandling. Typisk output af use casen, hvor aktøren er borger og betjener en borgerløsning med tekstinput eller pr. telefon. Denne anvendelse er nok den der er tættest på borgeren som aktør, men også behæftet med usikkerhed. Med kommunesammenlægningerne vil man i en periode flere steder arbejde med flere forekomster af Nygade indenfor samme kommunekode. Derfor brug for særligbemærkning. Typisk anvendelse system til sagsbehandler Maskine til maskine i use casen hvor aktøreren er sagsbehandler hos en vejmyndighed og igangsætter en sagsbehandling. Bemærk: Vejbestyrer og VejNr optræder i visse vejadministrationssystemer samlet som VejCPR Det reelt nye bidrag til OIOXML Arbejdet med den konceptuelle model afslørede at der er 3 nye aggregater, som kan bidrage til OIOXML paradigmet. Alle kredser de omkring konceptet: punkt på vej som der i øjeblikket ikke findes et fælles, nationalt udtryk for der går på tværs af sektorer. 6
kryds vejid Vejbestyrer VejNr VejDel Kilometrering} +Vejbestyrer[1] : vejbestyrer +VejNr[1] : vejnrtype +VejDel[1] : vejdeltype -meter[1] : metertype krydsvejid +vejid1[1] : vejid +vejid2[1] : vejid +særligbemærkning[0..1] : særligebemærkningtype krydsvejnavn +StreetName[1] : StreetNameType +StreetName[1] : StreetNameType +KommuneKode[1] : KommuneKodeType +særligbemærkning[0..1] : særligebemærkningtype krydsfotid Er under planlægning} -knudepunktid[1] Figur 4: Konceptuel UML-model for de reelle nye klasser. De med gråt markerede klasser er de klasser der søges optaget i ISB en. Kandidaten krydsfotid er udeladt dels fordi arbejdet stadig pågår i projekt Danmarks Veje og dels fordi man må forvente et ejerskab og standardisering herfra. Den konceptuelle model beskriver et generaliseringsforhold mellem klassen kryds og klasserne krydsvejid, krydsvejnavn og krydsfotid i betydningen kryds kan være én og kun én af de tre. Når vi overfører det til en logisk model, som kan udtrykkes i XML Schema ser det således ud: Figur 5: Logisk UML-model. Generaliseringsforholdet er blevet erstattet af et simpelt 1..1 forhold mellem klasserne JunctionStructure og JunctionByStreetIdentifierStructure og mellem klasserne JunctionStructure og JunctionByStreetNameStructure. 7
Tabel 4: Oversigt over elementer som indgår i klasserne Element navn StreetIdentifier- Structure StreetSection- Identifier StreetMeterMeasure Meter MunicipalityCode Dansk label og definition VejID: Entyding identifikation af en vej. En konstruktion bestående af VejBestyrer, VejKode, VejDel og kilometrering udtrykt i Meter VejDel: Entydig identitifikation af vejdel indenfor den pågældende kommune. Kommunekode: Kode for en kommune. Klarskrift til en kommunekode findes ved opslag i CPRs myndighedsdata. Koden vil altid være unique. SpecialRemarksText SærligeBemærkninger: Kort bemærkning i klartekst. StreetName Vejnavn: Vejnavn i klartekst Domæne Eksempel Bemærkning <restriction base="string"><minlen gth value="1"/></restriction > <element name="meter" type="long"> Anvender CPR AuthorityCode Type: <restriction base="string"> <pattern value="[0-9]{4}" /> </restriction> <restriction base="string"> <minlength value="1"/> <maxlength value="256"/> </restriction> <StreetIdentifierStruct ure><cpr:authorityco de>0000</cpr:authori tycode><cpr:streetco de>0000</cpr:streetc ode><streetsectionide ntifier>string</streets ectionidentifier> <StreetMeterMeasure >2147483647</Street MeterMeasure> </StreetIdentifierStruc ture> 3 Vejdels angivelse kan variere alt efter valg af notation hos den lokale vejmyndighed samt vejadministrationssystem. 1200 0851 (Aalborg Kommune) Mange systemer anvender i dag kun en 3-cifret kode. Da første ciffer i alle CPR s kommunekoder er 0 (nul) er det simpelt at kompensere for det manglende ciffer. 8
Dansk label og Element navn Domæne Eksempel Bemærkning definition JunctionStructure JunctionByStreet- IdentifierStructure JunctionByStreet NameStructure Kryds: Se nedenfor KrydsVejId: Se nedenfor Bliver en complextype med en choice mellem Junc- tionby- Street- Identifier- Structure og JunctionBy- StreetName- Structure Bliver en complextype med en sequence med Street- Identifier- (1), Street- Identifier- (2) og Special- Remarks Bliver en complextype med en sequence med StreetName- (1), StreetName- (2), Municipality Code og Special- Remarks 9
StreetIdentifierStructure / VejID Min Max Dansk Label Eksempel AuthorityCode 1 1 VejBestyrer 0010 StreetCode 1 1 VejKode 0179 StreetSectionIdentifier 1 1 VejDel 11a StreetMeterMeasure 1 1 Meter 2100 XML-Schema <schema xmlns:vejsektoren="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" xmlns="http://www.w3.org/2001/xmlschema" xmlns:cpr="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/" targetnamespace="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" elementformdefault="qualified attributeformdefault="unqualified"> <include schemalocation="vejsektoren_streetmetermeasure.xsd"/> <include schemalocation="vejsektoren_streetsectionidentifier.xsd"/> <import namespace="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/" schemalocation="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/cpr_streetcode.xsd"/> <import namespace="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/" schemalocation="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/cpr_authoritycode.xsd"/> <element name="streetidentifierstructure" type="vejsektoren:streetidentifierstructuretype"/ <complextype name="streetidentifierstructuretype"> <sequence> <element ref="cpr:authoritycode"/> <element ref="cpr:streetcode"/> <element ref="vejsektoren:streetsectionidentifier"/> <element ref="vejsektoren:streetmetermeasure"/> </sequence> </complextype> </schema> Eksempel på XML-struktur (uden angivelse af namespace tilhørsforhold) <StreetIdentifierStructure> <cpr:authoritycode>0010</cpr:authoritycode> <cpr:streetcode>0179</cpr:streetcode> <StreetSectionIdentifier>11a</StreetSectionIdentifier> <StreetMeterMeasure>2100</StreetMeterMeasure> </StreetIdentifierStructure> 10
JunctionStructure / Kryds Min Max Dansk Label Eksempel JunctionByStreetNameStructure 1 1 KrydsVejNavn JunctionByStreetIdentifierStructure 1 1 KrydsVejID XML-Schema <schema xmlns:vejsektoren="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" elementformdefault="qualified attributeformdefault="unqualified"> <include schemalocation="vejsektoren_junctionbystreetidentifierstructure.xsd"/> <include schemalocation="vejsektoren_junctionbystreetnamestructure.xsd"/> <element name="junctionstructure" type="vejsektoren:junctionstructuretype"/> <complextype name="junctionstructuretype"> <choice> <element ref="vejsektoren:junctionbystreetidentifierstructure"/> <element ref="vejsektoren:junctionbystreetnamestructure"/> </choice> </complextype> </schema> Eksempel på XML-struktur (uden angivelse af namespace tilhørsforhold) <JunctionStructure> <JunctionByStreetIdentifierStructure> <JunctionStreet1IdentifierStructure> <cpr:authoritycode>0010</cpr:authoritycode> <cpr:streetcode>0179</cpr:streetcode> <StreetSectionIdentifier>11a</StreetSectionIdentifier> <StreetMeterMeasure>2100</StreetMeterMeasure> </JunctionStreet1IdentifierStructure> <JunctionStreet2IdentifierStructure> <cpr:authoritycode>0010</cpr:authoritycode> <cpr:streetcode>0180</cpr:streetcode> <StreetSectionIdentifier>10b</StreetSectionIdentifier> <StreetMeterMeasure>990</StreetMeterMeasure> </JunctionStreet2IdentifierStructure> <SpecialRemarksText>Bemærkning her</specialremarkstext> </JunctionByStreetIdentifierStructure> </JunctionStructure> 11
JunctionByStreetIdentifier- Structure / KrydsVejId Min Max Dansk Label Eksempel JunctionStreet1IdentifierStructure 1 1 Kommunekode 0851 JunctionStreet2IdentifierStructure 1 1 SpecialRemarksText 0 1 SærligBemærkning Klartekst XML-Schema <schema xmlns="http://www.w3.org/2001/xmlschema" xmlns:vejsektoren="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" targetnamespace="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" elementformdefault="qualifie attributeformdefault="unqualified"> <include schemalocation="vejsektoren_junctionstreet1identifierstructure.xsd"/> <include schemalocation=" VEJSEKTOREN_JunctionStreet2IdentifierStructure.xsd"/> <include schemalocation=" VEJSEKTOREN_SpecialRemarksText.xsd"/> <element name="junctionbystreetidentifierstructure" type="vejsektoren:junctionbystreetidentifierstructuretype"/> <complextype name="junctionbystreetidentifierstructuretype"> <sequence> <element ref="vejsektoren:junctionstreet1identifierstructure"/> <element ref="vejsektoren:junctionstreet2identifierstructure"/> <element ref="vejsektoren:specialremarkstext" minoccurs="0"/> </sequence> </complextype> </schema> Eksempel på XML-struktur (uden angivelse af namespace tilhørsforhold) <JunctionByStreetIdentifierStructure> <JunctionStreet1IdentifierStructure> <cpr:authoritycode>0010</cpr:authoritycode> <cpr:streetcode>0179</cpr:streetcode> <StreetSectionIdentifier>11a</StreetSectionIdentifier> <StreetMeterMeasure>2100</StreetMeterMeasure> </JunctionStreet1IdentifierStructure> <JunctionStreet2IdentifierStructure> <cpr:authoritycode>0010</cpr:authoritycode> <cpr:streetcode>0199</cpr:streetcode> <StreetSectionIdentifier>2b</StreetSectionIdentifier> <StreetMeterMeasure>12</StreetMeterMeasure> </JunctionStreet2IdentifierStructure> <SpecialRemarksText>Bemærkning her</specialremarkstext> </JunctionByStreetIdentifierStructure> 12
JunctionByStreetNameStructure / KrydsVejNavn Min Max Dansk Label Eksempel JunctionStreet1Name 1 1 VejNavn1 Hans Broges Gade JunctionStreet2Name 1 1 VejNavn2 Odensegade MunicipalityCode 1 1 Kommunekode 0851 SpecialRemarksText 0 1 SærligBemærkning Ved Kirkepladsen XML-Schema <schema xmlns:vejsektoren="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" xmlns="http://www.w3.org/2001/xmlschema" xmlns:cpr="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/" targetnamespace="http://rep.oio.dk/vejsektoren.dk/xml/schemas/2004/11/17/" elementformdefault="qualified" attributeformdefault="unqualified"> <import namespace="http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/" schemalocation= "http://rep.oio.dk/cpr.dk/xml/schemas/core/2005/03/18/cpr_municipalitycode.xsd"/> <include schemalocation="vejsektoren_specialremarkstext.xsd"/> <include schemalocation="vejsektoren_junctionstreet1name.xsd"/> <include schemalocation="vejsektoren_junctionstreet2name.xsd"/> <element name="junctionbystreetnamestructure" type="vejsektoren:junctionbystreetnamestructuretype"/> <complextype name="junctionbystreetnamestructuretype"> <sequence> <element ref="vejsektoren:junctionstreet1name"/> <element ref="vejsektoren:junctionstreet2name"/> <element ref="cpr:municipalitycode"/> <element ref="vejsektoren:specialremarkstext" minoccurs="0"/> </sequence> </complextype> </schema> Eksempel på XML-struktur (uden angivelse af namespace tilhørsforhold) <JunctionByStreetNameStructure> <JunctionStreet1Name>Hans Broges Gade</JunctionStreet1Name> <JunctionStreet2Name>Odensegade</JunctionStreet2Name> <cpr:municipalitycode>0851</cpr:municipalitycode> <SpecialRemarksText>Ved Kirkepladsen</SpecialRemarksText> </JunctionByStreetNameStructure> 13