RIV Tekniska Anvisningar 2.1

Relevanta dokument
RIV TA Domänschema 2.1

RIV TA Domänschema 2.1

RIV Tekniska Anvisningar Tjänsteschema

RIV TA Tjänsteschema 2.1 RIV Tekniska Anvisningar

RIV Tekniska Anvisningar Tjänsteschema

RIV TA Basic Profile 2.1 med intygspropagering RIV Tekniska Anvisningar

Policy för öppen källkod RIV Tekniska Anvisningar

RIV TA Basic Profile 2.1

RIV TA Basic Profile 2.1 RIV Tekniska Anvisningar

RIVTA Basic Profile 2.1

Basic Profile. SHS Version 2.0 SOAP-based Protocol. Utgåva PA SHS Version 2.0 SOAPbased Protocol Basic Profile 1 (10)

RIV Tekniska Anvisningar Release notes

Hantering av tillitsnivåer

SHS Version 2.0 SOAP-based Protocol Översikt

RIV Tekniska Anvisningar Basic Profile Valfria tillägg

05:01 Riktlinjer för utveckling av standardmeddelanden för förenklat informationsutbyte med elektroniska standarddokument

InTime Message Center SMS gränssnittsspecifikation V2.3

Tentamen Informationsinfrastruktur

LEX INSTRUKTION LEX.CONFIG

Dokumentschema förpackning av externa objekt. Version: 1.0 Status: Standard Datum:

Pass 4. Vad är en metadatastandard? SND Svensk nationell datatjänst

Hantera informationspaket i system för bevarande

Serverat och kommunal arkitektur

Anvisning för Svensk Livfaktura

RIV Tekniska Anvisningar Översikt Utgåva E

XML. XML is a method for putting structured data in a text file

FormPipe Long-Term Archive

Tjänstegränssnitt för domänen kvalitetsregister. PM om tjänstegränssnitt för de nationella kvalitetsregistren på den Nationella Tjänsteplattformen

Meddelandespecifikation Avbrottsrapportering

Policy för öppen källkod

RIV Tekniska Anvisningar Översikt

JHS 170 XML-scheman för den offentliga förvaltningen

RIV TA Konfigurationsstyrning 1.0 RIV Tekniska Anvisningar

Handledning Konfigurationsstyrning tjänstedomäner

Tillämpningsanvisningar

Postbeskrivning. Sjukanmälan

RIV Tekniska anvisningar Öppen källkod

Konfigurationsstyrning tjänstedomäner ARK_0007. Version

RIV Tekniska Anvisningar Översikt Utgåva PD

Heldag om FGS FGS:er och deras tekniska regelverk. Karin Bredenberg, FGS funktionen. Standarder. FGS:er och deras tekniska regelverk 1

En snabb titt på XML LEKTION 6

ÖTP Sambruks höstmöte

Öppen källkod ARK_0008

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

Nyttomeddelande Ärendehändelse (samt begreppsmodelltillägg)

Meddelandespecifikation. Förhandsregleringen

Planera genomförande

Uppgiftskravstjänsten Teknisk anslutning för att hämta uppgiftskrav som öppna data. Version 1.0

Meddelandespecifikation Avbrottsrapportering

DP7 Kompletterande information

Sändning av uppgifter Scheman Meddelanden Anläggningsprojekt för ett nationellt inkomstregister

Metodstöd 2

Meddelandespecifikation Avstämning i förhandsregleringen av intäktsramar

Arkitekturella beslut Infektionsverktyget. Beslut som påverkar arkitekturens utformning

Vad är XML Schemas. XML Schemas. Varför XML Schmas. Namespace

Underlag för godkännande av tjänsteproducent

Vägledning för innovativ applikations- och tjänsteutveckling

Välja säkerhetsåtgärder

Sändning av uppgifter Scheman Makuleringsuppgifter Anläggningsprojekt för ett nationellt inkomstregister

Tjänsteplattform. Tekniska krav. ARK_0034 Version 1.0.1

Exempel på AB dok. arkitekturella beslut

Heldag om FGS Att ta fram en FGS. Jan Aspenfjäll. FGS projekt

Tjänstekontraktsbeskrivning - Terminologitjänsten

Anvisning och mall för namnsättning av tjänstedomän för tjänstekontrakt

Tekniskt gränssnitt ZIP-fil för applikationsutvecklare Anläggningsprojekt för ett nationellt inkomstregister

Avisering av förändringar i tjänstekontrakt för Mina Meddelanden

Vad gör en åsna i vården? Mats Ekhammar

RIV Tekniska Anvisningar Översikt

Introduktion... 2 Vad är en vy? Meddelandestruktur fi2messageheader, meddelandehuvud... 5

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Teknisk guide för brevlådeoperatörer. Annika Melin Version: 1.1

Arkitektur och Regelverk Definition av kodverk och klassifikation. Version 1.0

XML-produkter. -Registret över verkliga huvudmän (RVH) Teknisk handledning för webbtjänst mot RVH (Web Services) Datum: Version: 1.

Handledning. Konfigurationsstyrning tjänstedomäner. Version ARK_

BILAGA 2 Tekniska krav

BAS Online Svensk nationell datatjänst, SND

Kravspecifikation DB03. Funktionalitet för att upptäcka fel i databasen Version: Beteckning: UND-07-T-06. Status:

Dataproduktspecifikation Projektionszoner Sweref 99 Trafikverket. Version 5.0

Förvaltningsgemensam specifikation för leverans av enstaka publikationer till Kungliga biblioteket (FGS-PUBL)

Nationell Informationsstruktur 2015:1. Bilaga 7: Arkitektur och metodbeskrivning

BEAst Supply Material. Meddelandetyp ORDERÄNDRING, version 3.0

E-pliktleverans via RSS-feeds

Kommunicera förbättringar

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

BILAGA 2 Tekniska krav Version 1.52

Schematransformation SLU

MMS gränssnittsspecifikation (v1.0)

GPS positionerade fordon - Basunderhåll Väg

Geodataportalen - Metadata -Webbformulär för redigering av metadata

Svensk nationell datatjänst, SND BAS Online

JHS 193 Unik identifierare för geografisk information Bilaga 1. Process för att bilda URI

Certifikattjänsten Beskrivning av gränssnittet Inkomstregisterenheten

Arkitekturöversikt Publicerat taxonomiramverk

Metodstöd 2

Bilaga 3. En redogörelse kring metadata och XML. Status Slutlig. Sid 1 (7) Dokumenttyp. Versionsdatum

Certifikattjänsten - testbädd. Anläggningsprojekt för ett nationellt inkomstregister

LEFI Online. Anslutningsinformation

Transkript:

RIV Tekniska Anvisningar 2.1 Domänschema Version 2.1.1 ARK_0006 2014-09-25

Innehåll 1 Inledning... 4 1.1 Målgrupp... 4 1.2 Syfte... 4 1.3 Tillgänglighet... 4 1.4 Referenser... 5 2 Meddelanderegler... 6 Regel #1, designmönster för domänscheman... 6 Regel #2, namn på xsd-filen... 6 Regel #3, namn på target namespace... 6 Regel #4, användning av schema-attributet version... 6 Regel #5, användning av any-element för utökningsbarhet... 7 Regel #6, nya element i utökningsschema... 7 Regel #7 Nationella tecken... 8 3 Bilaga 1: Exempel på bakåtkompatibel utökning... 9 4 Bilaga 2: Exempel på icke-bakåtkompatibel utökning... 11 2/12

Utgåvehistorik Utgåva Revision Datum Beskrivning Ändringarna gjorda av Definitiv revision fastställd av PA1 2011-06-27 Dokumentet skapat Marcus.krantz@callista enterprise.se A 2011-10-19 Fastställd revision Arkitekturledningens tekniska expertgrupp, Center för ehälsa i samverkan PB1 2011-12-14 Uppdaterat dokumentet i och med byte av projektplats från Osor till Google code. Enbart ändringar under rubriken Referenser. hans.thunberg@callista enterprise.se B 2012-01-03 Fastställd revision Arkitekturledningens tekniska expertgrupp, Center för ehälsa i samverkan C 2013-06-19 Ny revision efter CeHis nya processer 2.1.1 2014-08-20 Förtydligat regel #6 och flyttat XML-exempel till bilagor. 2.1.1 2014-09-26 Lagt över i Inera mall och publiserat. Arkitektur och regelverk, Center för ehälsa i samverkan Mattias Nordvall, Inera Lennart Eriksson, Inera Arkitektur och regelverk, Center för ehälsa i samverkan 3/12

1 Inledning Detta dokument beskriver regelverket RIV Tekniska Anvisningar Domänschema 2.1. 1.1 Målgrupp Denna anvisning riktar sig till dem som ska specificera XML-scheman för tjänstekontrakt i en nationell tjänstedomän. Anvisningen innehåller endast regeluppsättningen. För bakgrund, motiv, krav samt de principer som ligger till grund för framtagning av reglerna hänvisas till Översikt RIV Tekniska Anvisningar [R2]. 1.2 Syfte Syftet med denna anvisning är att beskriva designregler och namngivningsregler för de meddelandetyper som skall användas inom en tjänstedomän. 1.3 Tillgänglighet Detta dokument är publicerade under licensen Creative Commons CC-BY-SA (http://creativecommons.org/licenses/by-sa/2.5/se/). Det betyder att du fritt får kopiera, distribuera och skapa bearbetningar av anvisningarna, under förutsättning att upphovsmannen (Sveriges Kommuner och Landsting) anges (men inte på ett sätt som antyder att de godkänt eller rekommenderar din användning av verket). 4/12

1.4 Referenser Ref Dokument Beskrivning och ev. webbadress Ansvarig [R1] Beskrivning av Venetian Blind Dokumentet beskriver det designmönster som tillämpas för XML Schema design i denna anvisning. Okänd. Webblänk till hemsidan: http://www.xfront.com/globalversuslocal.html [R2] Översikt RIV Tekniska Anvisningar Bakgrund, motiv, krav samt de principer som ligger till grund för utvecklingen av denna anvisning. Arkitekturledningens tekniska expertgrupp, Webblänk till PDF för översikten: SKL http://www.cehis.se/arkitektur_och_regelverk/regelverk/ [R3] W3C-rapport om utökningsbara XMLscheman Beskriver problemställningar och strategier för design av meddelanden som ger bra stöd för versionshantering. Versioneringsstrategin som beskrivs i denna översikt och som tillämpas i RIV Teknisk Anvisning Tjänsteschema är baserad på strategi nr 2 i denna rapport. W3C Webblänk till rapportens hemsida: http://www.w3.org/2001/tag/doc/versioning-xml [R4] WS-I Basic Profile Defines the WS-I Basic Profile 1.1, consisting of a set of non-proprietary Web services specifications, along with clarifications, refinements, interpretations and amplifications of those specifications which promote interoperability The Web Services Interoperability Organization och ISO Weblänk till WS-I Basic Profile: http://www.wsi.org/profiles/basicprofile-1.1.html 5/12

2 Meddelanderegler Regel #1, designmönster för domänscheman "Venetian Blind" [R1] skall användas som designmönster för domänscheman. Designmönstret Venetian Blind innebär följande: Den interna strukturen i ett meddelande byggs upp med hjälp av globalt deklarerade typer. Med globalt deklarerade menas deklarationer som görs direkt under schema-elementet. Endast rotelementet är deklarerat som ett globalt element. I web-service-fallet innebär det att request- och response-elementen är globalt deklarerade element medan resten är typer. Anm. I vissa fall kan även andra element än request och response behöva vara globala, t ex används elementreferenser till globala element i importerade scheman för att stödja versioneringsstrategin, se nedan. Motiv: Interoperabilitet, WS-I Basic Profile Regel #2, namn på xsd-filen Schema-filen för ett domänschema skall namnges enligt följande regel: ${tjänstedomän}_${m.n}.xsd Motiv: Att ha med versionsnummer i namnet på källkodsfiler är generellt sett något man försöker undvika då det försvårar användning av versionshanteringsverktyg (t ex Subversion, Microsoft Visual Studio). I fallet med domänschema behöver man dock kunna hantera flera olika versioner samtidigt (i byggsystem mm) och för att underlätta den hanteringen ingår versionsnumret i filnamnet på tjänstekontrakt och tjänstescheman. Exempel: itintegration_monitoring_1.0.xsd Regel #3, namn på target namespace Attributet targetnamespace på schema-elementet skall ha ett värde som definieras av följande regel: urn:riv:${tjänstedomän}:${m} Motiv: Användningen av major-version i namnrymden är en av att följa fastslagen versioneringsstrategi [R3]. Att ha en unik namnrymd per tjänstekontrakt (tjänsteinteraktion + roll) är en förutsättning för att följa WS-I Basic Profiles [R4] regel om operation signature. Det också generellt goda förutsättningar för att implementera generella bryggor och tjänsteväxlar Exempel: urn:riv:itintegration:monitoring:1 Regel #4, användning av schema-attributet version Schema-attributet version bör sättas till "m.n" 6/12

Motiv: Då namnrymden inte innehåller minor-version, ger detta en dokumentation som följer intentionen med attributet. Exempel: <schema... version="1.0> Regel #5, användning av any-element för utökningsbarhet För att uppnå framåtkompatibilitet skall ett xsd:any element läggas in sist i alla komplexa typer som ska kunna utökas, exempel: Motiv: För att uppnå framåtkompatibilitet måste man "förbereda" sina XML scheman för framtida utökningsbarhet. Detta är en del av den tillämpade strategin för versionering [R3]. Exempel: <xs:complextype name="sometype"> <xs:sequence> <xs:element name="someelement" type="xsd:string" /> <xs:element name="someotherelement" type="xsd:int" /> <xs:any processcontents="lax" minoccurs="0" maxoccurs="unbounded" namespace="##other"/> </xs:sequence> </xs:complextype> Regel #6, nya element i utökningsschema För att skapa en ny minor-version av ett tjänsteschema, skall följande regler följas: De nya elementen läggs till i befintligt schema närmast före any-elementet i den komplexa typ som ska utökas. Dessa nya element har ingen typ, utan refererar (xsd:ref= ) element som är rotelement i en ny schema-fil (utöknings-schema) För att ändringen ska vara bakåtkompatibel så måste de nya elementen ha attributet minoccurs= 0. Det leder i sin tur att any-elementet måste tas bort. Detta för att uppfylla kravet på Unique Particle Attribution i Xml Schema 1.0. Följden blir att denna komplexa typ inte kan förändras fler gånger på ett bakåtkompatibelt sätt. De nya elementen definieras i en ny schema-fil (utökningsschema) med ett namn som följer följande regel: ${tjänstedomän}_${m.n}_ext.xsd Utökningsschemat ska ha en targetnamespace enligt följande regel: urn:riv:${tjänstedomän}:${m.n} Domänschemat importerar (xsd:import) utöknings-schemat som ges namnrymdsalias enligt följande regel: m${n} Domänschemats versionsattribut ändras till den nya minor-versionen. I nästa major-version av tjänsteschemat flyttas element-deklarationerna in från alla utökningsscheman (det finns ett för varje minor-version som tilkommit sedan förra major-versionen skapades). Dessutom läggs eventuellt borttagna any-element tillbaka, enligt regel #5. Motiv: Detta förfarande är en konsekvens av vald strategi för versionering [R3]. Se [R2] för ytterligare bakgrund. Se även bilaga 1 och 2 för exempel på utökningar. 7/12

Regel #7 Nationella tecken Domänscheman ska inte använda nationella tecken i såväl elementnamn, attributnamn som vid listning av värdemämngder för uppräkningstyper. Följande exempel bör därför undvikas: <xs:simpletype name= Å > <xs:annotation> <xs:documentation> </xs:documentation> </xs:annotation> <xs:restriction base= xs:string > <xs:enumeration value= Återställas helt /> <xs:enumeration value= Återställas delvis /> <xs:enumeration value= Det går inte att bedöma /> </xs:restriction> </xs:simpletype> Motiv: För att undvika interoperabilitetsproblem bör man ej använda sig av nationella tecken när man definierar typer som kommer att användas i ett tjänstekontrakt. Ofta uppstår annars fel vid kodgenerering från schemat. 8/12

3 Bilaga 1: Exempel på bakåtkompatibel utökning Detta är ett verkligt exempel från CRM-domänen där följande förändringar görs: Tre nya icke-obligatoriska element läggs till. Any-elementet tas bort (pga Unique Particle Attribution) Ny minorversion: crm_scheduling_1.1.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="urn:riv:crm:scheduling:1" xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:m1="urn:riv:crm:scheduling:1.1" targetnamespace="urn:riv:crm:scheduling:1" elementformdefault="qualified" attributeformdefault="unqualified" version="1.1"> <xs:import namespace="urn:riv:crm:scheduling:1.1" schemalocation="crm_scheduling_1.1_ext.xsd"/> <xs:complextype name="subjectofcaretype"> <xs:sequence> <xs:element name="phone" type="xs:string" minoccurs="0"/> <xs:element name="email" type="xs:string" minoccurs="0"/> <xs:element name="address" type="xs:string" minoccurs="0"/> <xs:element name="coaddress" type="xs:string" minoccurs="0"/> <xs:element ref="m1:firstname" minoccurs="0"/> <xs:element ref="m1:middlename" minoccurs="0"/> <xs:element ref="m1:lastname" minoccurs="0"/> <xs:any namespace="##other" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:schema> Utökningsschema med element som tillkommit i 1.1: crm_scheduling_1.1_ext.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="urn:riv:crm:scheduling:1.1" xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="urn:riv:crm:scheduling:1.1" elementformdefault="qualified" attributeformdefault="unqualified" version="1.1"> <xs:element name="firstname" type="xs:string"/> <xs:element name="middlename" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:schema> Vid nästa major-version görs följande förändringar: De tillagda elementen flyttas från utökningsschemat till huvudschemat De tillagda elementen kan nu göras obligatoriska Any-elementet läggs tillbaka 9/12

Ny major-version: crm_scheduling_2.0.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="urn:riv:crm:scheduling:2" xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="urn:riv:crm:scheduling:2" elementformdefault="qualified" attributeformdefault="unqualified" version="2.0"> <xs:complextype name="subjectofcaretype"> <xs:sequence> <xs:element name="phone" type="xs:string" minoccurs="0"/> <xs:element name="email" type="xs:string" minoccurs="0"/> <xs:element name="address" type="xs:string" minoccurs="0"/> <xs:element name="coaddress" type="xs:string" minoccurs="0"/> <xs:element name="firstname" type= xs:string minoccurs="1"/> <xs:element name="middlename" type= xs:string minoccurs="0"/> <xs:element name="lastname" type= xs:string minoccurs="1"/> <xs:any namespace="##other" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:schema> 10/12

4 Bilaga 2: Exempel på icke-bakåtkompatibel utökning Detta är ett fingerat exempel från CRM-domänen där följande tre nya element läggs till. Utökningen blir ickebakåtkompatibel eftersom flera av elementen är obligatoriska (minoccurs= 1 ). Om åtminstone det sista elementet är obligatoriskt så kan any-elementet behållas för framtida bruk. Ny minorversion: crm_scheduling_1.1.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="urn:riv:crm:scheduling:1" xmlns:xs="http://www.w3.org/2001/xmlschema" xmlns:m1="urn:riv:crm:scheduling:1.1" targetnamespace="urn:riv:crm:scheduling:1" elementformdefault="qualified" attributeformdefault="unqualified" version="1.1"> <xs:import namespace="urn:riv:crm:scheduling:1.1" schemalocation="crm_scheduling_1.1_ext.xsd"/> <xs:complextype name="subjectofcaretype"> <xs:sequence> <xs:element name="phone" type="xs:string" minoccurs="0"/> <xs:element name="email" type="xs:string" minoccurs="0"/> <xs:element name="address" type="xs:string" minoccurs="0"/> <xs:element name="coaddress" type="xs:string" minoccurs="0"/> <xs:element ref="m1:firstname" minoccurs="1"/> <xs:element ref="m1:middlename" minoccurs="0"/> <xs:element ref="m1:lastname" minoccurs="1"/> <xs:any namespace="##other" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:schema> Utökningsschema med element som tillkommit i 1.1: crm_scheduling_1.1_ext.xsd <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:tns="urn:riv:crm:scheduling:1.1" xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="urn:riv:crm:scheduling:1.1" elementformdefault="qualified" attributeformdefault="unqualified" version="1.1"> <xs:element name="firstname" type="xs:string"/> <xs:element name="middlename" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:schema> Vid nästa major-version integreras elementen från mellanliggande utökningsscheman i huvudschemat: crm_scheduling_2.0.xsd <?xml version="1.0" encoding="utf-8"?> 11/12

<xs:schema xmlns:tns="urn:riv:crm:scheduling:2" xmlns:xs="http://www.w3.org/2001/xmlschema" targetnamespace="urn:riv:crm:scheduling:2" elementformdefault="qualified" attributeformdefault="unqualified" version="2.0"> <xs:complextype name="subjectofcaretype"> <xs:sequence> <xs:element name="phone" type="xs:string" minoccurs="0"/> <xs:element name="email" type="xs:string" minoccurs="0"/> <xs:element name="address" type="xs:string" minoccurs="0"/> <xs:element name="coaddress" type="xs:string" minoccurs="0"/> <xs:element name="firstname" type= xs:string minoccurs="1"/> <xs:element name="middlename" type= xs:string minoccurs="0"/> <xs:element name="lastname" type= xs:string minoccurs="1"/> <xs:any namespace="##other" processcontents="lax" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> </xs:complextype> </xs:schema> 12/12