/
Bilaga 1. Exempel på utökning av tjänsteschema

Bilaga 1. Exempel på utökning av tjänsteschema

Ändringar i tjänstescheman

Tjänste/interaktionernas scheman är något mindre komplicerade att beskriva jämfört med ändringar i domänscheman eftersom de bara påverkar en interaktion, så frågan om att räkna upp version på interaktionen är tydlig, men strukturen beskrivs ändå för enhetlighet och tydlighet samt för att beskriva hur schemafilerna kan/ska hanteras.

Utgångläge version 1.0

Typerna AType och BType definieras i domänschemat.

Typerna EType och DType är interaktionsspecifika och definieras därför i interaktionsschemat.

 

XML-exempel

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="urn:riv:example:Get_AResponder:1"
           xmlns:core="urn:riv:example:1"
           targetNamespace="urn:riv:example:Get_AResponder:1"
           elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">

    <xs:import schemaLocation="../../core_components/Core_1.0.xsd" namespace="urn:riv:example:1"/>

    <xs:element name="Get_A" type="tns:Get_AType"/>
    <xs:element name="Get_AResponse" type="tns:Get_AResponseType"/>

    <xs:complexType name="Get_AType">
        <xs:sequence>
            <xs:element name="A" type="core:AType"/>
            <xs:element name="B" type="core:BType"/>
            <xs:element name="D" type="tns:DType"/>
            <xs:element name="E" type="tns:EType"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="EType">
        <xs:sequence>
            <xs:element name="E1" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="DType">
        <xs:sequence>
            <xs:element name="D1" type="xs:string"/>
            <xs:element name="D2" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Get_AResponseType">
        <xs:sequence>
            <xs:element name="result" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="urn:riv:example:1"
           targetNamespace="urn:riv:example:1"
           elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">

    <xs:complexType name="AType">
        <xs:sequence>
            <xs:element name="A1" type="xs:string"/>
            <xs:element name="A2" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="BType">
        <xs:sequence>
            <xs:element name="B1" type="xs:string"/>
            <xs:element name="B2" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

 

Version 1.1 utökning av typen DType i interaktionen Get_A

I version 1.1 så utökas typen DType.

  • Det nya elementet definieras i utökningsschema (Get_A_1.1_ext.xsd).

  • Det nya elementet läggs till typen DType i interaktionsschemat men som referenser.

  • Interaktionsschemat importerar Get_A_1.1_ext.xsd och får version 1.1 och denna ersätter 1.0 versionen.

 

XML-exempel (röd text är ändringar mot föregående version)

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="urn:riv:example:Get_AResponder:1"
           xmlns:core="urn:riv:example:1"
           xmlns:m1="urn:riv:example:1.1"
           targetNamespace="urn:riv:example:Get_AResponder:1"
           elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">

    <xs:import schemaLocation="../../core_components/Core_1.0.xsd" namespace="urn:riv:example:1"/>
    <xs:import schemaLocation="./Get_A_1.1_ext.xsd" namespace="urn:riv:example:1.1"/>

    <xs:element name="Get_A" type="tns:Get_AType"/>
    <xs:element name="Get_AResponse" type="tns:Get_AResponseType"/>

    <xs:complexType name="Get_AType">
        <xs:sequence>
            <xs:element name="A" type="core:AType"/>
            <xs:element name="B" type="core:BType"/>
            <xs:element name="D" type="tns:DType"/>
            <xs:element name="E" type="tns:EType"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="EType">
        <xs:sequence>
            <xs:element name="E1" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="DType">
        <xs:sequence>
            <xs:element name="D1" type="xs:string"/>
            <xs:element name="D2" type="xs:string"/>
            <xs:element ref="m1:D3" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Get_AResponseType">
        <xs:sequence>
            <xs:element name="result" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="urn:riv:example:1.1"
           targetNamespace="urn:riv:example:1.1"
           elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">

    <xs:element name="D3" type="xs:string"/>

</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:tns="urn:riv:example:1"
           targetNamespace="urn:riv:example:1"
           elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">

    <xs:complexType name="AType">
        <xs:sequence>
            <xs:element name="A1" type="xs:string"/>
            <xs:element name="A2" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="BType">
        <xs:sequence>
            <xs:element name="B1" type="xs:string"/>
            <xs:element name="B2" type="xs:string"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

 

Utökning till 1.2

I version 1.2 tillkommer typen FType och elementet E2 som ska utöka typen EType också en interaktionsspecifik typ och därför utökas i interaktionsschemat.

  • Den nya typen definieras i utökningsschema (Get_A_1.2_ext.xsd).

  • Det nya elementet av den nya typen läggs till i utökningsschema.

  • Det nya elementen läggs till i typen EType i interaktionsschemat men som referens.

  • Interaktionsschemat importerar Get_A_1.2_ext.xsd och får version 1.2 och denna ersätter 1.1 versionen.

 

XML-exempel (röd text är ändringar mot föregående version)

 

Related content

Bilaga 1: Exempel på utökning av domänsschema
Bilaga 1: Exempel på utökning av domänsschema
More like this
Bilaga 2: Exempel på utökning via både domänschema och interaktionsschema
Bilaga 2: Exempel på utökning via både domänschema och interaktionsschema
More like this
RIV Tekniska Anvisningar Tjänsteschema
RIV Tekniska Anvisningar Tjänsteschema
Read with this
2024-12-03: GetFilesForOrderId v4
2024-12-03: GetFilesForOrderId v4
More like this
RIV Tekniska Anvisningar Konfigurationsstyrning tjänstedomäner
RIV Tekniska Anvisningar Konfigurationsstyrning tjänstedomäner
Read with this
RIV Tekniska Anvisningar Parallella huvudversioner av ett tjänstekontrakt
RIV Tekniska Anvisningar Parallella huvudversioner av ett tjänstekontrakt
Read with this