/
Bilaga 1: Exempel på utökning av domänsschema

Bilaga 1: Exempel på utökning av domänsschema

Inledning

Var en ändring behöver göras beror till största delen på var en typ är definierad i den första versionen och antingen finns definitionen i ett, för domänen, domänschema som importeras av samtliga interaktioner eller så är typen definierad direkt i schemat för en enskild interaktion.

Ändringar i domänscheman

Utgångläge version 1.0

Domänschemat definierar fyra stycken komplexa typer (AType, BType, CType och DType).
Dessa används lite olika i olika interaktioner.

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="A1234" type="core:AType"/>
            <xs:element name="C5678" type="core:CType"/>
            <xs:element name="D9101" type="core:DType"/>
            <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:Get_BResponder:1"
           xmlns:core="urn:riv:example:1"
           targetNamespace="urn:riv:example:Get_BResponder: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_B" type="tns:Get_BType"/>
    <xs:element name="Get_BResponse" type="tns:Get_BResponseType"/>

    <xs:complexType name="Get_BType">
        <xs:sequence>
            <xs:element name="A1234" type="core:AType"/>
            <xs:element name="B5678" type="core:BType"/>
            <xs:element name="D9101" type="core:DType"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Get_BResponseType">
        <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:Get_CResponder:1"
           xmlns:core="urn:riv:example:1"
           targetNamespace="urn:riv:example:Get_CResponder: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_C" type="tns:Get_CType"/>
    <xs:element name="Get_CResponse" type="tns:Get_CResponseType"/>

    <xs:complexType name="Get_CType">
        <xs:sequence>
            <xs:element name="A1234" type="core:AType"/>
            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="Get_CResponseType">
        <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:complexType name="CType">
        <xs:sequence>
            <xs:element name="C1" 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:schema>

 

Version 1.1 Utökning av Type DType

I version 1.1 så utökas typen DType med ett nytt element.

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

  • Det nya elementet läggs till typen DType i Domänschemat men som referens.

  • Domänschemafilen importerar Core_1.1_ext.xsd får version 1.1 och denna ersätter 1.0 versionen.

  • Den nya domänschemafilen importeras i samtliga interaktionsscheman.

  • Eftersom typen DType används i interaktionerna Get_A & Get_B så ökas versionen på dessa interaktionsscheman (och WSDL filer).

  • Interaktionen Get_C använder inte typen DType så därför ökar inte versionen även fast importen av domänschemat ändras till att importera Core_1.1.xsd filen.

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.1">

    <xs:import schemaLocation="../../core_components/Core_1.1.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="A1234" type="core:AType"/>
            <xs:element name="C5678" type="core:CType"/>
            <xs:element name="D9101" type="core:DType"/>
            <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>

Related content

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 Domänschema
RIV Tekniska Anvisningar Domänschema
Read with this
Bilaga 1. Exempel på utökning av tjänsteschema
Bilaga 1. Exempel på utökning av tjänsteschema
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