Skip to content

Bijlage 4 Uitgewerkt Implementatie Voorbeeld

Arne Bruinse edited this page Jan 6, 2021 · 3 revisions

Uitgewerkt voorbeeld van implementatie van VISI in software

1. Inleiding

Om de systematiek goed te begrijpen is het belangrijk onderscheid te maken tussen:

  1. het gemaakte raamwerk (afspraken omtrent welke communicatie mogelijk is)
  2. het project specifieke bericht (de situatie)
  3. de berichten (de communicatie zelf)

In deze bijlage draait alles om de uitwerking van een raamwerk onder de VISI systematiek versie 1.3.

Een raamwerk wordt opgebouwd uit drie belangrijke componenten:

  • de transactietypes
  • de berichttypes
  • de simpelelements

Dit geldt voor elk VISI-raamwerk en daarmee ook voor dit raamwerk. Een digitale versie van het raam- werk is terug te vinden in de file _7.xml.

De systematiek zelf is vastgelegd in een tweetal zogenaamde Express schema’s1. Deze files hebben de extensie .exp. De eerste file bevat het express schema van Systematiek Deel 1, waarin de spelregels die specifiek van toepassing zijn op VISI-raamwerken zijn vastgelegd. Een .xsd versie die we kunnen gebruiken bij het opstellen van een raamwerk is terug te vinden in de _3.xsd. De tweede file heeft betrekking op Systematiek Deel 2. Hierin zijn de aanvullende spelregels vastgelegd die specifiek van belang zijn voor VISI-berichten.

Figuur 1

1.1. Beschrijving voorbeeld (file “_7.xml”)

1.1.1. Header, verwijzing naar de VISI Systematiek

De header van het raamwerk verwijst naar de VISI Systematiek in de vorm van een XML schema (.xsd extensie) welke de basisrestrictievormt van dit, en elk ander VISI compliant raamwerk.

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <visiXML_VISI_Systematics xmlns="http://www.visi.nl/schemas/ 20160331">

1.1.2. ProjectType

In het ProjectType wordt de naam van het project vastgelegd. Gaat het hier bijvoorbeeld om een raamwerk ter ondersteuning van grond, weg en waterbouwprojecten op basis van administratieve voorwaarden als de UAV of UAV-gc, dan kan dit worden verwerkt in de id en description. In ons geval gaat het om een raamwerk ter ondersteuning van een aantal operationele processen in een restaurant.

<ProjectType id="ProjectType1">
    <namespace>http://www.visi.nl/schemas/20160331/TestFramework</namespace>
    <description>VISI Testscenario's Raamwerk</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeSOAP"/>
    </complexElements>
</ProjectType>

1.1.3. PersonType

Om straks een transactie te kunnen definiëren in het bericht zullen we nu al een PersonType moeten definiëren. Eén enkele PersonType is voldoende om onbeperkt personen aan te maken, het is echter denkbaar dat er verschillende PersonType’s bestaan welke ieder een eigen invulling van specifieke persoonsgegevens toelaten. Denk hierbij bijvoorbeeld aan een categorisering in type van: minderjarig, volwassen en 65+. O.a. aan verschillende disciplines. We zullen ons in dit simpele voorbeeld beperken tot één PersonType en tevens zo simpel mogelijk gedefinieerd.

<PersonType id="StandardPersonType">
    <description>Standard person type</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</PersonType>

De id StandardPersonType zal straks een object op berichtniveau worden.

1.1.4. OrganisationType

Om straks een transactie te kunnen definiëren zullen we nu al een OrganisationType moeten definiëren.
Eén OrganisationType is voldoende om onbeperkt organisaties aan te maken, het is echter denkbaar dat er verschillende OrganisationType’s bestaan welke ieder een eigen invulling van specifieke organisatiegegevens toelaten. Denk hierbij bijvoorbeeld aan Besloten Vennootschap, Eenmanszaak of publiekrechtelijk orgaan. We zullen ons in dit simpele voorbeeld beperken tot één OrganisationType en tevens zo simpel mogelijk gedefinieerd.

<OrganisationType id="StandardOrganisationType">
    <description>Standard organisation type</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeOrganisatie"/>
    </complexElements>
</OrganisationType>

De id StandardOrganisationType zal straks een object op berichtniveau worden.

1.1.5. GroupType

Om straks een transactie te kunnen definiëren in het bericht zullen we nu al een GroupType moeten definiëren, in complexere voorbeelden zal te zien zijn dat binnen de systematiek veel vrijheid is om de berichtvorm te definiëren.
Eén GroupType is voldoende om onbeperkt groepen aan te maken, het is echter denkbaar dat er ver- schillende GroupType’s bestaan welke ieder een eigen invulling van specifieke groepgegevens toe- laten. We zullen ons in dit simpele voorbeeld beperken tot een enkel GroupType en tevens zo simpel mogelijk gedefinieerd.

<GroupType id="StandardGroupType">
    <description>Standard Group Type</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</GroupType>

De id StandardGroupType zal straks een object op berichtniveau worden.

1.1.6. RoleType

De rollen die voor kunnen komen in de te definiëren transacties zullen we ook alvast moeten definiëren. In ons geval hebben we vier transacties waarbij vier rollen betrokken zijn. Daarnaast wordt de rol van Kok vervuld door meerdere personen. In het voorbeeld is sprake van vier RoleType’s, Namelijk:

  1. Klant
  2. Ober
  3. Kok
  4. Keukenhulp

De rollen worden als volgt in het raamwerk gedefinieerd.

<RoleType id="keukenhulp">
    <description>Keukenhulp</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-02-02T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</RoleType>

<RoleType id="klant">
    <description>Klant</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</RoleType>

<RoleType id="kok">
    <description>Kok</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</RoleType>

<RoleType id="ober">
    <description>Ober</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</RoleType>

We hebben nu een rol klant, een rol ober, een rol kok en een rol keukenhulp.

1.1.7. TransactionPhaseType

De TransactionPhaseType wordt gebruikt om in de MessageInTransactionType aan te geven in welke fase een transactie zich bevindt. De volgende transactietoestanden vallen op dit moment te onder- kennen en worden in de meeste raamwerken gebruikt:

  • Start
  • Verzocht
  • Beloofd/executie
  • Wijziging/hold
  • Melding/gereed
  • Aanvaard/einde

De TransactionPhaseType’s worden als volgt gedefinieerd.

<TransactionPhaseType id="aanvaardEinde">
    <description>Aanvaard/Einde</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

<TransactionPhaseType id="beloofdExecutie">
    <description>Beloofd/Executie</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

<TransactionPhaseType id="meldingGereed">
    <description>Melding Gereed</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

<TransactionPhaseType id="start">
    <description>Start</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

<TransactionPhaseType id="verzocht">
    <description>Verzocht</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

<TransactionPhaseType id="wijzigingHold">
    <description>Wijziging/Hold</description>
    <startDate>2008-05-04T00:00:00</startDate>
    <endDate>2008-05-04T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2008-05-04T00:00:00</dateLaMu>
    <userLaMu>MMA</userLaMu>
</TransactionPhaseType>

1.1.8. TransactionType

We zullen op basis van het voorbeeld een viertal transacties definiëren. Deze transacties bevatten het gehele proces vanaf de vraag naar de menukaart tot de bevestiging dat hetgeen dat besteld is geleverd gaat worden. Binnen een transactie geven we altijd aan wie hem begint (de initiator) en met wie gecommuniceerd wordt (de executor). Een transactie vindt dus altijd plaats tussen twee rollen. Omdat bij het proces meer dan twee rollen betrokken zijn, is gekozen om een drietal transacties te gebruiken, namelijk:

T1 Opname bestelling
T2 Vraag Ober aan Kok
T3 Opdracht Kok
T4 Vraag Kok aan Keukenhulp

De TransactionType’s worden als volgt gedefinieerd.

<TransactionType id="t1_OpnameBestelling">
    <description>T1 Opname van bestelling (ober aan klant)</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <initiator>
        <RoleTypeRef idref="ober"/>
    </initiator>
    <executor>
        <RoleTypeRef idref="klant"/>
    </executor>
</TransactionType>

<TransactionType id="t2_VraagOberAanKok">
    <description>T2 Vraag (ober aan kok)</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <initiator>
        <RoleTypeRef idref="ober"/>
    </initiator>
    <executor>
        <RoleTypeRef idref="kok"/>
    </executor>
</TransactionType>

<TransactionType id="t3_OpdrachtKok">
    <description>T3 Opdracht (ober aan kok)</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <initiator>
        <RoleTypeRef idref="ober"/>
    </initiator>
    <executor>
        <RoleTypeRef idref="kok"/>
    </executor>
</TransactionType>

<TransactionType id="t4_VraagKokAanKeukenhulp">
    <description>T4 Vraag (kok aan keukenhulp)</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <initiator>
        <RoleTypeRef idref="kok"/>
    </initiator>
    <executor>
        <RoleTypeRef idref="keukenhulp"/>
    </executor>
    <appendixTypes>
        <AppendixTypeRef idref="AppRapport"/>
    </appendixTypes>
</TransactionType>

1.1.9. MessageType

De inhoud en vorm van de inhoud die de uiteindelijke berichten zullen moeten bevatten wordt binnen het MessageType gedefinieerd. Zoals in de transacties bij het voorbeeld is te zien, zijn een behoorlijk aantal berichten nodig. De berichten en hun vorm worden hieronder gedefinieerd. We kunnen hierbij op dezelfde manier als bij PersonType, OrganisationType, GroupType en AppendixType (deze wordt in dit voorbeeld niet gebruikt) de vorm en invulling van de berichten bijna geheel naar onze hand zetten. In een aantal berichten hebben we geen zelf gedefinieerde vorm voor het bericht bedacht, het zijn puur notificaties.

<MessageType id="msgAanbiedingMenuKaart">
    <description>Menukaart</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <appendixMandatory>true</appendixMandatory>
    <complexElements>
        <ComplexElementTypeRef idref="CeMenuKaart"/>
        <ComplexElementTypeRef idref="CeDagMenu"/>
        <ComplexElementTypeRef idref="CeDrankenKaart"/>
        <ComplexElementTypeRef idref="CeMenuKaartType"/>
    </complexElements>
</MessageType>

<MessageType id="msgAntwoord">
    <description>Antwoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeAntwoord"/>
        <ComplexElementTypeRef idref="CeMenuKaart"/>
    </complexElements>
    <appendixTypes>
        <AppendixTypeRef idref="AppTekening"/>
    </appendixTypes>
</MessageType>

<MessageType id="msgAntwoordIsOvergenomen">
    <description>Antwoord is overgenomen in antwoord aan ober</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2013-10-24T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>Dit bericht wordt alleen aangeboden als de kok een Antwoord naar de
ober gestuurd heeft.</helpInfo>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeAntwoord"/>
    </complexElements>
</MessageType>

<MessageType id="msgAntwoordWordtNietGebruikt">
    <description>Antwoord wordt niet gebruikt</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2013-10-24T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>Dit bericht wordt aangeboden zolang de kok nog niet gereageerd heeft
naar de ober. Hiermee sluit hij de transactie af en kan bijvoorbeeld een andere
keukenhulp inschakelen.</helpInfo>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeAntwoord"/>
    </complexElements>
</MessageType>

<MessageType id="msgBestellingAkkoord">
    <description>Bestelling: akkoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeBestelling"/>
    </complexElements>
</MessageType>

<MessageType id="msgBestellingIsAfgekeurdOpBasisVanAntwoord">
    <description>Bestelling is afgekeurd op basis van antwoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2013-10-24T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>Dit bericht wordt alleen aangeboden als de kok een Niet akkoord naar
de ober gestuurd heeft.</helpInfo>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeAntwoord"/>
    </complexElements>
</MessageType>

<MessageType id="msgBestellingIsGoedgekeurdOpBasisVanAntwoord">
    <description>Bestelling is goedgekeurd op basis van antwoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2013-10-24T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>Dit bericht wordt alleen aangeboden als de kok een Akkoord naar de
ober gestuurd heeft.</helpInfo>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeAntwoord"/>
    </complexElements>
</MessageType>

<MessageType id="msgBestellingNietAkkoord">
    <description>Bestelling: niet akkoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeBestelling"/>
    </complexElements>
</MessageType>

<MessageType id="msgJa">
    <description>Antwoord: Ja</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-03-16T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeMenuKaartType"/>
    </complexElements>
</MessageType>

<MessageType id="msgNee">
    <description>Antwoord: Nee</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
</MessageType>

<MessageType id="msgPlaatsingBestelling">
    <description>Bestelling</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <appendixMandatory>false</appendixMandatory>
    <complexElements>
        <ComplexElementTypeRef idref="CeBestelling"/>
    </complexElements>
</MessageType>

<MessageType id="msgVraag">
    <description>Vraag</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeVraag"/>
        <ComplexElementTypeRef idref="CeMenuKaart"/>
        <ComplexElementTypeRef idref="CeDagMenu"/>
        <ComplexElementTypeRef idref="CeDrankenKaart"/>
    </complexElements>
</MessageType>

<MessageType id="msgWiltuDeKaartZien">
    <description>Wilt u de menukaart zien?</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeReactieTermijn"/>
        <ComplexElementTypeRef idref="CeBaseTypeTest"/>
    </complexElements>
</MessageType>

1.1.10. MessageInTransactionType

Dit is een tamelijk complex object, waarin wordt gedefinieerd hoe de verschillende MessageType’s gekoppeld worden aan de verschillende TransactionType’s. Het is mogelijk één MessageType te koppelen aan meerdere TransactionType’s en ook omgekeerd: dezelfde MessageType meer dan eens koppelen aan een TransactionType.
Als communicatie over meerdere transacties verloopt (en deze communicatie ook achteraf traceerbaar dient te blijven), dan dient bij het opstellen van het raamwerk rekening gehouden te worden met de mogelijkheid dat bij de overgang van de één naar de andere transactie meerdere instanties van de tweede transactie gestart kunnen worden. Maar in het geval dat de rol Ober een bestelling plaatst bij meerdere personen in de rol van Kok met T2 willen we echter niet, als we reeds antwoord hebben gehad van één van de personen in de rol Kok, hoeven wachten totdat alle transacties T2 zijn afgerond die op basis van het bericht msgVraag uit T1 waren geïnitieerd. We willen zelfs met de primaire transactie T1 kunnen doorgaan zonder dat een secundaire transactie is afgerond. In dit geval dient het element OpenSecundaryTransactionsAllowed geen waarde te hebben. Door msgAntwoord op te nemen als BerichtInTransactie6 met zowel BerichtInTransactie5 als BerichtInTransactie11 als previous kan de primaire transactie gewoon doorgaan.
In het geval dat de Ober op basis van msgPlaatsingBestelling uit T1 transactie T3 opstart, willen we dat minstens één instantie van T3 is afgerond voordat de msgBestellingAkkoord wordt verzonden. Hiervoor geven we in MessageInTransactionType het BerichtInTransactie9 de waarde true aan bij OpenSecundaryTransactionsAllowed. Bij BerichtInTransactie8 (Bestelling niet akkoord) ligt het iets ingewikkelder. Ervan uitgaande dat de bestelling bij meer dan één kok is uitgezet zou je kunnen redeneren dat wanneer de eerste kok die reageert niet akkoord gaat, de ober kan afwachten of één van de andere koks wel akkoord gaat. Ook in dat geval geldt OpenSecundaryTransactionsAllowed = true.

Let ook op dat bij de eerste MessageInTransactionType T2 en T3 de voorgaande (previous) MITT uit T1 komt. Het veld previous geeft aan welke MITT vooraf dient te gaan aan een andere MITT. Dit veld is niet gekoppeld aan een specifieke transactie.
Let in het schema verder op de situatie die zich voordoet bij BerichtInTransactie6. Op basis van de richtlijn Transactiekoppeling die in versie 1.2 van de systematiek is doorgevoerd (zie ook de toelichting in paragraaf 1.2.1 van bijlage 5 bij de Leidraad), kan BerichtInTransactie6 worden verzonden ondanks dat BerichtInTransactie10 ook is verzonden. De Ober kan transactie T1 dus voortzetten zonder transactie T2 af te ronden.

Figuur 0

Figuur 2 Transactie T1 – Opname bestelling

Figuur 3 Transactie T2 – Vraag (ober aan kok)

Figuur 4 Transactie T3 – Opdracht (ober aan kok)

Figuur 5 Transactie T4 – Vraag (kok aan keukenhulp)

Figuur 6 BPMN diagram van het Testraamwerk

<MessageInTransactionType id="BerichtInTransactie1">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <firstMessage>true</firstMessage>
    <message>
        <MessageTypeRef idref="msgWiltuDeKaartZien"/>
    </message>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="start"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie10">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <firstMessage>true</firstMessage>
    <message>
        <MessageTypeRef idref="msgVraag"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie5"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t2_VraagOberAanKok"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="start"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie11">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>true</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgAntwoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie10"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t2_VraagOberAanKok"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie12">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <firstMessage>true</firstMessage>
    <message>
        <MessageTypeRef idref="msgPlaatsingBestelling"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie7"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t3_OpdrachtKok"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="start"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_MaarEenBestellingToegestaan"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie13">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>true</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgBestellingAkkoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie12"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t3_OpdrachtKok"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie14">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>true</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgBestellingNietAkkoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie12"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t3_OpdrachtKok"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie15">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-02-02T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>true</openSecondaryTransactionsAllowed>
    <firstMessage>true</firstMessage>
    <message>
        <MessageTypeRef idref="msgVraag"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie10"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie12"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="start"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_GeenVraagAanHulpAlsOberAntwoordHeeft"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie16">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-02-02T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgAntwoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie15"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie17">
    <requiredNotify>0</requiredNotify>
    <received>false</received>
    <send>false</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <message>
        <MessageTypeRef idref="msgAntwoordIsOvergenomen"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_AntwoordIsVerstuurd"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie18">
    <requiredNotify>0</requiredNotify>
    <received>false</received>
    <send>false</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <message>
        <MessageTypeRef idref="msgAntwoordWordtNietGebruikt"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_AntwoordNietGebruikt"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie19">
    <requiredNotify>0</requiredNotify>
    <received>false</received>
    <send>false</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <message>
        <MessageTypeRef idref="msgBestellingIsAfgekeurdOpBasisVanAntwoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_AfkeuringIsVerstuurd"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie2">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgNee"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie1"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie20">
    <requiredNotify>0</requiredNotify>
    <received>false</received>
    <send>false</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <message>
        <MessageTypeRef idref="msgBestellingIsGoedgekeurdOpBasisVanAntwoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie16"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t4_VraagKokAanKeukenhulp"/>
    </transaction>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <conditions>
        <MessageInTransactionTypeConditionRef idref="MC_GoedkeuringIsVerstuurd"/>
    </conditions>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie3">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <firstMessage>false</firstMessage>
    <message>
        <MessageTypeRef idref="msgJa"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie1"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="verzocht"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie4">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgAanbiedingMenuKaart"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie3"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="beloofdExecutie"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie5">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgVraag"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie4"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie6"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie8"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="wijzigingHold"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie6">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>true</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgAntwoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie5"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie11"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="beloofdExecutie"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
    <appendixTypes>
        <AppendixTypeRef idref="AppVideo"/>
    </appendixTypes>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie7">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>false</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgPlaatsingBestelling"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie4"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie6"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie8"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="meldingGereed"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie8">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgBestellingNietAkkoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie14"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="beloofdExecutie"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

<MessageInTransactionType id="BerichtInTransactie9">
    <requiredNotify>0</requiredNotify>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <received>true</received>
    <send>true</send>
    <state>active</state>
    <initiatorToExecutor>true</initiatorToExecutor>
    <openSecondaryTransactionsAllowed>false</openSecondaryTransactionsAllowed>
    <message>
        <MessageTypeRef idref="msgBestellingAkkoord"/>
    </message>
    <previous>
        <MessageInTransactionTypeRef idref="BerichtInTransactie13"/>
    </previous>
    <transaction>
        <TransactionTypeRef idref="t1_OpnameBestelling"/>
    </transaction>
    <transactionPhase>
        <TransactionPhaseTypeRef idref="aanvaardEinde"/>
    </transactionPhase>
    <group>
        <GroupTypeRef idref="StandardGroupType"/>
    </group>
</MessageInTransactionType>

1.1.11. MessageInTransactionTypeCondition

Aan de volgorde waarin berichten worden verstuurd kunnen nadere condities worden gesteld.

<MessageInTransactionTypeCondition id="MC_AfkeuringIsVerstuurd">
    <sendAfter>
        <MessageInTransactionTypeRef idref="BerichtInTransactie14"/>
    </sendAfter>
    <helpInfo>Melden dat een afkeuring van de bestelling is verstuurd op basis van
het antwoord mag alleen nadat die afkeuring verstuurd is.</helpInfo>
</MessageInTransactionTypeCondition>

<MessageInTransactionTypeCondition id="MC_AntwoordIsVerstuurd">
    <sendAfter>
        <MessageInTransactionTypeRef idref="BerichtInTransactie11"/>
    </sendAfter>
    <helpInfo>Antwoord is overgenomen mag alleen aangeboden worden nadat de kok een
antwoord terug aan de ober gegeven heeft.</helpInfo>
</MessageInTransactionTypeCondition>

<MessageInTransactionTypeCondition id="MC_AntwoordNietGebruikt">
    <sendBefore>
        <MessageInTransactionTypeRef idref="BerichtInTransactie14"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie13"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie11"/>
    </sendBefore>
    <helpInfo>Melden dat het antwoord niet gebruikt is, mag alleen maar gekozen
worden zolang er nog geen antwoord terug naar de ober gestuurd is.</helpInfo>
</MessageInTransactionTypeCondition>

<MessageInTransactionTypeCondition id="MC_GeenVraagAanHulpAlsOberAntwoordHeeft">
    <sendBefore>
        <MessageInTransactionTypeRef idref="BerichtInTransactie11"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie13"/>
        <MessageInTransactionTypeRef idref="BerichtInTransactie14"/>
    </sendBefore>
    <helpInfo>Testcase: Als de kok het antwoord op de bestelling of de vraag
gegeven heeft, mag er geen vraag meer naar de keukenhulp.</helpInfo>
</MessageInTransactionTypeCondition>

<MessageInTransactionTypeCondition id="MC_GoedkeuringIsVerstuurd">
    <sendAfter>
        <MessageInTransactionTypeRef idref="BerichtInTransactie13"/>
    </sendAfter>
    <helpInfo>Melden dat een goedkeuring van de bestelling is verstuurd op basis
van het antwoord mag alleen nadat die goedkeuring verstuurd is.</helpInfo>
</MessageInTransactionTypeCondition>

<MessageInTransactionTypeCondition id="MC_MaarEenBestellingToegestaan">
    <sendBefore>
        <MessageInTransactionTypeRef idref="BerichtInTransactie12"/>
    </sendBefore>
    <helpInfo>Testcase: als de klant een bestelling aan de ober geeft, mag er mmaar
1 bestelling naar de keuken gaan om dubbele bestellingen te voorkomen.</helpInfo>
</MessageInTransactionTypeCondition>

1.1.12. ComplexElementType

In de verschillende berichten willen we een specifieke XML vorm op berichtniveau afdwingen. Binnen dit bericht hebben we naar een ComplexElementType verwezen. ComplexElementType’s zijn een groepering van een willekeurig aantal SimpleElementType’s. Een ComplexElementType is een verzameling van elementen (SimpleElementType’s). Elk gerefereerd element komt precies één keer voor. Als we altijd drie dezelfde elementen ingevuld willen hebben kunnen we dit afdwingen door de referentie naar dit SimpleElementType drie keer op te nemen. In ons voorbeeld hebben we van elk SimpleElementType referentie slechts één (maar ook minimaal 1) opgenomen.

<ComplexElementType id="CeAntwoord">
    <description>Antwoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="Antwoord"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeBaseTypeTest">
    <description>Veldsoorten test</description>
    <startDate>2013-10-25T00:00:00</startDate>
    <endDate>2013-10-25T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="SeBoolean"/>
        <SimpleElementTypeRef idref="SeDate"/>
        <SimpleElementTypeRef idref="SeDatetime"/>
        <SimpleElementTypeRef idref="SeTime"/>
        <SimpleElementTypeRef idref="SeDecimal"/>
        <SimpleElementTypeRef idref="SeInteger"/>
        <SimpleElementTypeRef idref="SeKeuzelijst"/>
        <SimpleElementTypeRef idref="SeString"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeBestelling">
    <description>Bestelling</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2014-06-20T15:17:11</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>de gerechten en drankjes worden in aparte tabellen ingevoerd, met per
regel de mogelijkheid een opmerking toe te voegen. Er is ook een totaalopmerking in
te voeren, als er iets bijzonders over bijvoorbeeld de manier van opdienen
ingevoerd moet worden.</helpInfo>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudBestelling"/>
        <ComplexElementTypeRef idref="CeInhoudDrankbestelling"/>
    </complexElements>
    <simpleElements>
        <SimpleElementTypeRef idref="Opmerking"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeDagMenu">
    <description>Dagmenu</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2016-06-07T10:00:01</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
</ComplexElementType>
<ComplexElementType id="CeDrankenKaart">
    <description>Drankenkaart</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2016-06-07T10:00:21</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
</ComplexElementType>

<ComplexElementType id="CeInhoudBestelling">
    <description>Inhoud van de bestelling</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="NaamGerecht"/>
        <SimpleElementTypeRef idref="Opmerking"/>
    </simpleElements>
    <minOccurs>1</minOccurs>
</ComplexElementType>

<ComplexElementType id="CeInhoudDrankbestelling">
    <description>Inhoud drankbestelling</description>
    <startDate>2014-06-20T00:00:00</startDate>
    <endDate>2014-06-20T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2014-06-20T15:11:28</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="SeSoortDrank"/>
        <SimpleElementTypeRef idref="SeHoeveelheid"/>
        <SimpleElementTypeRef idref="Opmerking"/>
    </simpleElements>
    <minOccurs>1</minOccurs>
    <maxOccurs>1</maxOccurs>
</ComplexElementType>

<ComplexElementType id="CeInhoudMenuKaart">
    <description>Inhoud van de menukaart</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="NaamMenukaartItem"/>
        <SimpleElementTypeRef idref="Omschrijving"/>
        <SimpleElementTypeRef idref="Prijs"/>
    </simpleElements>
    <maxOccurs>3</maxOccurs>
</ComplexElementType>

<ComplexElementType id="CeJaNee">
    <description>Antwoord</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="Wachttijd"/>
        <SimpleElementTypeRef idref="JaNee"/>
        <SimpleElementTypeRef idref="Opmerking"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeMenuKaart">
    <description>Menukaart</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
</ComplexElementType>

<ComplexElementType id="CeMenuKaartType">
    <description>MenukaartType</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="MenuKaartType"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeOrganisatie">
    <description>Organisatie specs</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="SOAPServerURL"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeRapport">
    <description>Rapport</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="Auteur"/>
        <SimpleElementTypeRef idref="Versie"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeReactieTermijn">
    <description>Reactietermijn</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-28T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="Wachttijd"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeSOAP">
    <description>SOAP specificaties</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2011-10-26T00:00:00</dateLaMu>
    <userLaMu>PWi</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="SOAPProtocol"/>
        <SimpleElementTypeRef idref="SOAPServerURL"/>
        <SimpleElementTypeRef idref="SOAPCentralServerURL"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeTekening">
    <description>Tekening</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="AantalLagen"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeVideo">
    <description>Video</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="VideoFormaat"/>
    </simpleElements>
</ComplexElementType>

<ComplexElementType id="CeVraag">
    <description>Vraag</description>
    <startDate>2009-01-01T00:00:00</startDate>
    <endDate>2010-01-01T00:00:00</endDate>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <simpleElements>
        <SimpleElementTypeRef idref="Vraag"/>
    </simpleElements>
</ComplexElementType>

Zoals is te zien, bijvoorbeeld bij CeMenuKaart, is het mogelijk een complex element in een ander complex element op te nemen. Dit dient geïnterpreteerd te worden als een tabel waarbij de simpele elementen uit het gekoppelde complexe element de kolommen vormen en de waarden in de rijen worden opgenomen.

1.1.13. SimpleElementType

SimpleElementType is een element met gedefinieerde, naam, omschrijving en veldopmaak (bijvoorbeeld string van maximaal 9 karakters of een integer). Het kan echter ook een referentie naar een ComplexElementType bevatten, dit houdt in dat op berichtniveau 0 tot onbeperkt aantal van deze ComplexElementType elementen aanwezig zijn.

<SimpleElementType id="AantalLagen">
    <description>Aantal lagen in de tekening</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="INTEGER"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Antwoord">
    <description>Antwoord</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Auteur">
    <description>Auteur</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="JaNee">
    <description>Ja of Nee</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="BOOLEAN"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="MenuKaartType">
    <description>Menukaarttype</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-02T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="NaamGerecht">
    <description>Naam van het gerecht</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="NaamMenukaartItem">
    <description>Naam van menukaartitem</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Omschrijving">
    <description>Omschrijving</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Opmerking">
    <description>Opmerking</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-31T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Prijs">
    <description>Prijs</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeBoolean">
    <description>Boolean</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="BOOLEAN"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeDate">
    <description>Date / Datum</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="DATE"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeDatetime">
    <description>Datetime / Datum en tijd</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo></helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="DATETIME"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeDecimal">
    <description>Decimal / Decimaal</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo></helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="DECIMAL"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeHoeveelheid">
    <description>Hoeveelheid</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2014-06-20T15:13:39</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo>De hoeveelheid drankjes die besteld zijn</helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="INTEGER"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeInteger">
    <description>Integer / Geheel getal</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="INTEGER"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeKeuzelijst">
    <description>Keuzelijst</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo></helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="Keuzelijst"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeSoortDrank">
    <description>Soort drankje</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2014-06-20T15:12:24</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeString">
    <description>String / Vrije tekst</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo></helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SeTime">
    <description>Time / Tijd</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <helpInfo></helpInfo>
    <userDefinedType>
        <UserDefinedTypeRef idref="TIME"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SOAPCentralServerURL">
    <description>SOAP Central Server URL</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-03-16T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SOAPProtocol">
    <description>SOAP Protocol</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-03-16T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="SOAPServerURL">
    <description>SOAP Server URL</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-03-16T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Versie">
    <description>Versienummer</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="INTEGER"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="VideoFormaat">
    <description>Videoformaat</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-03T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Vraag">
    <description>Vraag</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="STRING"/>
    </userDefinedType>
</SimpleElementType>

<SimpleElementType id="Wachttijd">
    <description>Wachttijd (in seconden)</description>
    <interfaceType></interfaceType>
    <state>active</state>
    <dateLaMu>2009-02-02T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <userDefinedType>
        <UserDefinedTypeRef idref="INTEGER"/>
    </userDefinedType>
</SimpleElementType>

1.1.14. ElementCondition

Met de ElementCondition is het mogelijk uitzonderingen aan te geven op de standaard overname van simpele elementen (zoals vastgelegd in de richtlijn voor hergebruik en blokkeren gegevenselementen) in opeenvolgende berichten. Als in het voorbeeld wordt aangegeven dat een bestelling niet mogelijk is, is het niet gewenst dat de waarden in het volgende bericht fixed zijn. Hiervoor maken we een ElementCondition aan waarbij we stellen dat bij een bepaalde MessageInTransactionType de waarde van de SimpleElements de condition FREE (editable) hebben. In ons voorbeeld doen we dit bij BerichtInTransactie9. In deze MITT wordt namelijk voor de eerste keer een bestelling geplaatst (nog geen waarde beschikbaar), of nadat kenbaar is gemaakt dat een bestelling niet mogelijk is (waarden wel beschikbaar vanuit het voorgaande bericht maar moeten wel editable zijn).

<ElementCondition id="ElementCondition1">
    <description>De bestelling moet gewijzigd kunnen worden na een negatieve
reactie van de kok.</description>
    <condition>FREE</condition>
    <messageInTransaction>
     <MessageInTransactionTypeRef idref="BerichtInTransactie7"/>
    </messageInTransaction>
</ElementCondition>

<ElementCondition id="ElementCondition2">
    <description>Na een antwoord volgt mogelijk een nieuwe vraag.</description>
    <condition>EMPTY</condition>
    <simpleElement>
        <SimpleElementTypeRef idref="Vraag"/>
    </simpleElement>
    <messageInTransaction>
        <MessageInTransactionTypeRef idref="BerichtInTransactie5"/>
    </messageInTransaction>
</ElementCondition>

<ElementCondition id="ElementCondition3">
    <description>Wachttijd mag nooit worden overschreven.</description>
    <condition>FIXED</condition>
    <simpleElement>
        <SimpleElementTypeRef idref="Wachttijd"/>
    </simpleElement>
</ElementCondition>

<ElementCondition id="ElementCondition1vanScenario10">
    <description>Free op Prijs SE in Child CE Inhoud van de menukaart</description>
    <condition>FREE</condition>
    <helpInfo/>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
    <simpleElement>
        <SimpleElementTypeRef idref="Prijs"/>
    </simpleElement>
</ElementCondition>

<ElementCondition id="ElementCondition2vanScenario10">
    <description>Free op Omschrijving SE in Parent CE Menukaart</description>
    <condition>FREE</condition>
    <helpInfo/>
    <complexElements>
        <ComplexElementTypeRef idref="CeMenuKaart"/>
    </complexElements>
    <simpleElement>
        <SimpleElementTypeRef idref="Omschrijving"/>
    </simpleElement>
</ElementCondition>

<ElementCondition id="ElementCondition3vanScenario10">
    <description>Empty op Parent CE Dagmenu</description>
    <condition>EMPTY</condition>
    <helpInfo/>
    <complexElements>
        <ComplexElementTypeRef idref="CeDagMenu"/>
    </complexElements>
</ElementCondition>

<ElementCondition id="ElementCondition4vanScenario10">
    <description>Free op MITT, Parent CE, Child CE, en SE</description>
    <condition>FREE</condition>
    <helpInfo/>
    <complexElements>
        <ComplexElementTypeRef idref="CeDagMenu"/>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
    <simpleElement>
        <SimpleElementTypeRef idref="NaamMenukaartItem"/>
    </simpleElement>
    <messageInTransaction>
        <MessageInTransactionTypeRef idref="BerichtInTransactie5"/>
    </messageInTransaction>
</ElementCondition>

<ElementCondition id="ElementCondition5vanScenario10">
    <description>Free op Parent en Child CE</description>
    <condition>FREE</condition>
    <complexElements>
        <ComplexElementTypeRef idref="CeDrankenKaart"/>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
</ElementCondition>

<ElementCondition id="ElementCondition6vanScenario10">
    <description>Fixed op parent en child CE en op SE prijs</description>
    <condition>FIXED</condition>
    <helpInfo/>
    <complexElements>
        ComplexElementTypeRef idref="CeDrankenKaart"/>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
    </complexElements>
    <simpleElement>
        <SimpleElementTypeRef idref="Prijs"/>
    </simpleElement>
</ElementCondition>

<ElementCondition id="ElementCondition7vanScenario10">
    <description>Foute element condition: Inhoud van de menukaart is child CE en
menukaart is parent CE. Deze EC heeft inhoud als parant gedefinieerd en menukaart
als child. Deze situatie bestaat niet in dit raamwerk.</description>
    <condition>FREE</condition>
    <helpInfo/>
    <complexElements>
        <ComplexElementTypeRef idref="CeInhoudMenuKaart"/>
        <ComplexElementTypeRef idref="CeMenuKaart"/>
    </complexElements>
    <messageInTransaction>
        <MessageInTransactionTypeRef idref="BerichtInTransactie6"/>
    </messageInTransaction>
</ElementCondition>

1.1.15. UserDefinedType

UserDefinedType wordt gebruikt om aan te geven wat de gebruiker voor een bepaald element mag invullen, bijvoorbeeld een string of een integer. Ook de beperkingen worden bepaald, bijvoorbeeld een string van maximaal 9 karakters of een integer kleiner dan 1000. Voor de restricties zijn alle door XML toegelaten restricties mogelijk.

<UserDefinedType id="BOOLEAN">
    <description>BOOLEAN</description>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <baseType>BOOLEAN</baseType>
</UserDefinedType>

<UserDefinedType id="DATE">
    <description>DATE</description>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <baseType>DATE</baseType>
</UserDefinedType>

<UserDefinedType id="DATETIME">
    <description>DATETIME</description>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <baseType>DATETIME</baseType>
</UserDefinedType>

<UserDefinedType id="DECIMAL">
    <description>DECIMAL</description>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <baseType>DECIMAL</baseType>
</UserDefinedType>

<UserDefinedType id="INTEGER">
    <description>INTEGER</description>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <baseType>INTEGER</baseType>
</UserDefinedType>

<UserDefinedType id="Keuzelijst">
    <description>Keuzelijst</description>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <baseType>STRING</baseType>
    <xsdRestriction>&lt;xs:enumeration value="Keuze 1"/&gt;&lt;xs:enumeration value="Keuze 2"/&gt;&lt;xs:enumeration value="Keuze 3"/&gt;</xsdRestriction>
</UserDefinedType>

<UserDefinedType id="STRING">
    <description>STRING</description>
    <state>active</state>
    <dateLaMu>2009-01-29T00:00:00</dateLaMu>
    <userLaMu>PWI</userLaMu>
    <baseType>STRING</baseType>
</UserDefinedType>

<UserDefinedType id="TIME">
    <description>TIME</description>
    <state>active</state>
    <dateLaMu>2013-10-25T00:00:00</dateLaMu>
    <userLaMu>Arne</userLaMu>
    <baseType>TIME</baseType>
</UserDefinedType>

2. Uitwerking berichten

In deze paragraaf staat het opstellen van de VISI berichten centraal. In het VISI-raamwerk uit para- graaf 1.1 worden de berichten beschreven die in een project gebruikt kunnen worden. De VISI- berichten zullen moeten voldoen aan een (berichten)schema dat is gebaseerd op het raamwerk. Het berichtenschema kan automatisch worden gegenereerd met een programma dat ‘Promotor’ genoemd wordt. De Promotor gebruikt een VISI-raamwerk en de VISI-systematiek Deel 1 en Deel 2 als invoer en produceert een schema (XSD) waarin alle mogelijke berichten inclusief toebehoren zijn vastgelegd. Het schema in de volgende figuur laat zien wat de plaats is van de Promotor in de totstandkoming van VISI-berichten.

Figuur 7

De Promotor wordt vrij ter beschikking gesteld in de vorm van een Dynamically Linked Library (DLL), is een bibliotheek met functies die door meerdere applicaties gebruikt kunnen worden. Het is hierdoor mogelijk om de Promotor te integreren in andere software. De bestanden en aanvullende documentatie is te downloaden op de VISI-website www.crow.nl/visi.

Door het raamwerk te promoten worden de berichtenschema’s in een xsd bestand (10.xsd) vastgelegd. De berichten de we in deze paragraaf gaan opstellen dienen aan deze schema’s te voldoen. Als eerste wordt een projectspecifiek bericht opgesteld. Vervolgens wordt een scenario met zestien berichten doorgewerkt.

2.1. Het projectspecifieke bericht

Het projectspecifieke bericht plaatst het raamwerk in de context van een project. In het project- specifieke bericht worden onder andere personen aan rollen gekoppeld en wordt de specifieke naam aan het project gegeven. Daarnaast wordt het gebruikte SOAP protocol aangegeven en het ip-adres van de SOAP central server; zie ook bijlage 8 (SOAP protocol) bij de Leidraad.

In versie 1.2 van de systematiek is tevens de mogelijkheid toegevoegd om een opvolger aan te geven voor iemand die tijdens het project vertrekt. In projecten blijken in de praktijk geregeld personeelswisseling plaats te vinden. Tijdens een personeelswisseling blijven transacties openstaan. Door het specificeren van een zogenoemde successor neemt deze persoon de transacties van haar/zijn voorganger over.

De volgende personen zullen aan de onderstaande rollen worden gekoppeld:

Kees de Vries → Klant Piet Jansen → Ober Dirk Zwart → Kok Rob Taal → Kok Jan Toet → Kok Pietje Puk → Keukenhulp

Om een beeld te krijgen op welke wijze een successor in het projectspecifieke bericht aangegeven moet worden, zijn twee versies van het projectspecifieke bericht opgesteld. In het eerste projectspecifieke bericht (project_specifiek_bericht_tot_en_met_bericht_6.xml) is geen sprake van een successor. In de tweede versie wel en kan het uitgecommentarieerde element worden geactiveerd.

Project specifiekbericht 1: “project_specifiek_bericht_tot_en_met_bericht_6.xml”.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/20160331/TestFramework10.xsd">
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling</description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>https://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>https://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>https://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>https://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="DirkZwart">
        <userName>dz</userName>
        <name>Dirk Zwart</name>
    </StandardPersonType>
    <StandardPersonType id="RobTaal">
        <userName>rt</userName>
        <name>Rob Taal</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR003">
        <contactPerson>
            <StandardPersonTypeRef idref="DirkZwart" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR004">
        <substituting>
            <PersonInRoleRef idref="PiR003" />
        </substituting>
        <contactPerson>
            <StandardPersonTypeRef idref="RobTaal" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

Project specifiekbericht 2: “project_specifiek_bericht_vanaf_bericht_7.xml”.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/20160331/TestFramework10.xsd">
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling</description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>https://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>https://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>https://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>https://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="DirkZwart">
        <userName>dz</userName>
        <name>Dirk Zwart</name>
    </StandardPersonType>
    <StandardPersonType id="RobTaal">
        <userName>rt</userName>
        <name>Rob Taal</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR003">
        <contactPerson>
            <StandardPersonTypeRef idref="DirkZwart" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR004">
        <successor>
            <PersonInRoleRef idref="PiR005" />
        </successor>
        <contactPerson>
            <StandardPersonTypeRef idref="RobTaal" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>

            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2. Opstellen van berichten

In deze paragraaf wordt stap voor stap een scenario doorgewerkt en worden de bijbehorende berichten gecreëerd. In het scenario komt aan bod hoe wordt omgegaan met berichten die als previous een MITT uit een andere transactie hebben. Tevens passeren zaken als successor en element condition de revue. Het kan handig zijn om het schema uit hoofdstuk 1 (figuur 1) erbij te houden.

2.2.1. Het eerste bericht (“eerste_bericht.xml”)

In het raamwerk is vastgelegd dat het eerste bericht de vraag van de rol ober aan de rol klant betreft of de klant de kaart wil zien. Dit is een zeer eenvoudig bericht waar nog geen complexe elementen in zitten. Bij het eerste bericht wordt een extra toelichting gegeven bij elk onderdeel waaruit het bericht is opgebouwd.

Header, verwijzing naar het berichtenschema (gepromoot raamwerk).

De header van het bericht verwijst naar het berichtenschema welke de basisrestrictie vormt van dit en elk ander bericht volgens het gedefinieerde raamwerk. De ontvangende software zal nu op basis van deze header het bijbehorende raamwerk moeten ophalen, dan wel moeten nagaan of dit raamwerk al in zijn eventuele cache aanwezig is.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd" xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework">

Het bericht

We definiëren vervolgens het eerste bericht binnen de transactie. Binnen het raamwerk zijn voor de betreffende transactie meerdere berichten gedefinieerd. De berichten zijn door middel van message in transaction type (MITT) gekoppeld aan transactie T1Opname bestelling. Het bericht waarmee wordt begonnen is msgWiltuDeKaartZien. Dit bericht heeft via de MITT geen voorgaand bericht.

<msgWiltuDeKaartZien id="bericht001">
    <identification />
    <dateSend>2008-05-04T00:00:00.0Z</dateSend>
    <initiatorToExecutor>true</initiatorToExecutor>
    <messageInTransaction>
        <BerichtInTransactie1Ref idref="BiT001" />
    </messageInTransaction>
    <transaction>
        <t1_OpnameBestellingRef idref="transactie001" />
    </transaction>
    <ceReactieTermijn>
        <CeReactieTermijnRef idref="ce001a"/>
    </ceReactieTermijn>
    <ceBaseTypeTest>
        <CeBaseTypeTestRef idref="ce001b"/>
    </ceBaseTypeTest>
</msgWiltuDeKaartZien>

Bericht in transactie

Bij de introductie van systematiek 1.2 is al afgesproken het bijbehorende MessageInTransactionType mee te nemen in het bericht. Dit besluit komt voort uit de problematiek rond de mogelijkheid om binnen een transactie hetzelfde bericht meerdere malen op verschillende plekken in de flow van de transactie op te nemen. Hierdoor waren gevallen denkbaar waarbij hetzelfde bericht binnen een transactie andere vervolgberichten heeft, afhankelijk van de positie in de flow. Om dit te voorkomen wordt dit vastgelegd.

<BerichtInTransactie1 id="BiT001">
    <identification />
</BerichtInTransactie1>

Transactie

Vervolgens definiëren we de transactie die wordt gebruikt. Binnen de transactie zien we standaardvelden, ‘wie heeft hem wanneer aangemaakt’ en de mogelijkheid tot een uitgebreidere omschrijving en naamgeving. Maar ook zien we de initiator en executor, in ons geval vraagt Piet Jansen (PiR002) in de rol van ober of Kees de Vries (PiR001) in de rol van klant de menukaart wil zien.

<t1_OpnameBestelling id="transactie001">
    <number>1</number>
    <name />
    <description>Onderwerp van de transactie</description>
    <startDate>2008-05-04T00:00:00.0Z</startDate>
    <endDate>2009-05-04T00:00:00.0Z</endDate>
    <initiator>
        <PersonInRoleRef idref="PiR002" />
    </initiator>
    <executor>
        <PersonInRoleRef idref="PiR001" />
    </executor>
    <project>
        <ProjectType1Ref idref="Project1" />
    </project>
</t1_OpnameBestelling>

Project

Op raamwerkniveau is een ProjectType aangegeven. In het projectspecifieke bericht wordt de projectspecifieke context meegegeven. De projectgegevens worden als volgt verwerkt in het bericht.

<ProjectType1 id="Project1">
    <name>Project Top Koks</name>
    <description>Project voor het opnemen van een bestelling</description>
    <startDate>2008-05-04T00:00:00.0Z</startDate>
    <endDate>2009-05-04T00:00:00.0Z</endDate>
    <ceSOAP>
        <CeSOAP id="ProjectGegevens">
            <sOAPProtocol>MTOM</sOAPProtocol>
            <sOAPServerURL>https://192.168.0.1/visi.wsdl</sOAPServerURL>
            <sOAPCentralServerURL>https://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
        </CeSOAP>
    </ceSOAP>
</ProjectType1>

PersonInRole

Zowel de initiator als executor, reeds genoemd in transactie, zijn specifieke personen behorend tot een bepaalde organisatie welke zich gedragen volgens een specifieke rol. De personen, organisaties en rollen worden afzonderlijk gedefinieerd. Om echter een goede initiator en executor definitie te krijgen bestaat het verzamelobject PersonInRole (dit object bestaat voor elk berichtenschema ongeacht het raamwerk).

<PersonInRole id="PiR001">
    <contactPerson>
        <StandardPersonTypeRef idref="KeesDeVries" />
    </contactPerson>
    <organisation>
        <StandardOrganisationTypeRef idref="consument" />
    </organisation>
    <role>
        <klantRef idref="klantRol" />
    </role>
</PersonInRole>
<PersonInRole id="PiR002">
    <contactPerson>
        <StandardPersonTypeRef idref="PietJansen" />
    </contactPerson>
    <organisation>
        <StandardOrganisationTypeRef idref="restaurant" />
    </organisation>
    <role>
        <klantRef idref="oberRol" />
    </role>
</PersonInRole>

Instanties van rollen

Op raamwerkniveau hebben we reeds de rol Ober aangemaakt, Hier definiëren we een instantie van deze rol, te weten de oberRol. Deze instantie hebben we nodig om straks te vragen of de klant de menukaart wil zien.

<ober id="oberRol">
    <name>Ober Rol</name>
    <description>Diegene die serveert</description>
</ober>

Hetzelfde doen we voor de rol Klant (de klantRol).

<klant id="klantRol">
    <name>Klant Rol</name>
    <description>Diegene die de klant is</description>
</klant>

StandaardOrganisationType

Op raamwerkniveau hebben we slechts één OrganisationType aangemaakt, het is dus simpel om te kiezen volgens welk object we de deelnemende organisaties willen specificeren. In dit onderdeel worden tevens met behulp van een complex element de URL van de SOAP-server aan het project meegegeven.

<StandardOrganisationType id="consument">
    <name>Consument</name>
    <abbreviation>CSMT</abbreviation>
    <contactPerson>
        <StandardPersonTypeRef idref="KeesDeVries" />
    </contactPerson>
    <ceOrganisatie>
        <CeOrganisatie id="OrganisatieGegevensConsument">
            <sOAPServerURL>https://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
        </CeOrganisatie>
    </ceOrganisatie>
</StandardOrganisationType>
<StandardOrganisationType id="restaurant">
    <name>Restaurant</name>
    <abbreviation>RSTR</abbreviation>
    <contactPerson>
        <StandardPersonTypeRef idref="PietJansen" />
    </contactPerson>
    <ceOrganisatie>
        <CeOrganisatie id="OrganisatieGegevensRestaurant">
            <sOAPServerURL>https://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
        </CeOrganisatie>
    </ceOrganisatie>
</StandardOrganisationType>

Opmerking: Een enkele organisatie is ook mogelijk als beide rollen binnen dezelfde organisatie ver- vuld worden.

StandaardPersonType

Op raamwerkniveau hebben we slechts één PersonType aangemaakt. Het is dus eenvoudig om te kiezen volgens welk object we de deelnemende personen willen specificeren.

<StandardPersonType id="KeesDeVries">
    <userName>kvd</userName>
    <name>Kees de Vries</name>
</StandardPersonType>
<StandardPersonType id="PietJansen">
    <userName>pj</userName>
    <name>Piet Jansen</name>
</StandardPersonType>

Opmerking: Slechts een enkele persoon is ook mogelijk als beide rollen door één persoon vervuld worden (dit lijkt onnatuurlijk maar kan t.b.v. administratieve redenen voordelen hebben).

Het complete eerste bericht ziet er nu als volgt uit:

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd" 
    xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework">
    <msgWiltuDeKaartZien id="bericht001">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie1Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceReactieTermijn>
            <CeReactieTermijnRef idref="ce001a"/>
        </ceReactieTermijn>
        <ceBaseTypeTest>
            <CeBaseTypeTestRef idref="ce001b"/>
        </ceBaseTypeTest>
    </msgWiltuDeKaartZien>
    <CeReactieTermijn id="ce001a">
        <wachttijd>40</wachttijd>
    </CeReactieTermijn>
    <CeBaseTypeTest id="ce001b">
        <seBoolean>true</seBoolean>
        <seDate>2008-05-04</seDate>
        <seDatetime>2008-05-04T00:00:00.0Z</seDatetime>
        <seTime>00:00:00.0Z</seTime>
        <seDecimal>100.00</seDecimal>
        <seInteger>123</seInteger>
        <seKeuzelijst>Keuze 1</seKeuzelijst>
        <seString>een string</seString>
    </CeBaseTypeTest>
    <BerichtInTransactie1 id="BiT001">
        <identification />
    </BerichtInTransactie1>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description>Onderwerp van de transactie</description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling</description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>https://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>https://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>https://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>https://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.2. Het tweede bericht (“tweede_bericht.xml”)

Nadat de ober met het eerste bericht heeft gevraagd of de klant de kaart wil zien, geeft de klant met het tweede bericht (msgJa) aan dat hij de kaart inderdaad wil zien. Aangezien het bericht zo goed als overeen komt met het eerste bericht volgt hier het gehele bericht.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgJa id="bericht002">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie3Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceMenuKaartType>
            <CeMenuKaartType id="menuKaartType001">
                <menuKaartType>Dinerkaart</menuKaartType>
            </CeMenuKaartType>
        </ceMenuKaartType>
    </msgJa>
    <BerichtInTransactie3 id="BiT001">
        <identification />
    </BerichtInTransactie3>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling
        </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL/>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.3. Het derde bericht (“derde_bericht.xml”)

De ober heeft in het tweede bericht een positieve reactie van de klant ontvangen. Hij zal nu met het derde bericht de menukaart gaan aanbieden aan de klant.

Om dit de kunnen doen zit in de de message het complexe element CeMenuKaart. Dit complexe element is niet direct gerelateerd aan simpele elementen, maar aan een ander complex element CeInhoudMenuKaart. Afgesproken is dat een complex element in een complex element geïnterpreteerd wordt als een tabel. De message komt er hierdoor als volgt uit te zien.

<msgAanbiedingMenuKaart id="bericht003">
    <identification />
    <dateSend>2008-05-04T00:00:00.0Z</dateSend>
    <initiatorToExecutor>true</initiatorToExecutor>
    <messageInTransaction>
        <BerichtInTransactie4Ref idref="BiT001" />
    </messageInTransaction>
    <transaction>
        <t1_OpnameBestellingRef idref="transactie001" />
    </transaction>
    <ceMenuKaart>
        <CeMenuKaart id="menuKaart001">
            <ceInhoudMenuKaart>
                <CeInhoudMenuKaart id="inhoudMenuKaart001">
                    <naamMenukaartItem>Carpatio</naamMenukaartItem>
                    <omschrijving>Dunne lapjes vlees + garneering</omschrijving>
                    <prijs>25.00</prijs>
                </CeInhoudMenuKaart>
                <CeInhoudMenuKaart id="inhoudMenuKaart002">
                    <naamMenukaartItem>Biefstuk</naamMenukaartItem>
                    <omschrijving>Biefstuk + gepofte aardappelen en salade</omschrijving>
                    <prijs>35.00</prijs>
                </CeInhoudMenuKaart>
                <CeInhoudMenuKaart id="inhoudMenuKaart003">
                    <naamMenukaartItem>Vruchten</naamMenukaartItem>
                    <omschrijving>Verse vruchten</omschrijving>
                    <prijs>12.50</prijs>
                </CeInhoudMenuKaart>
            </ceInhoudMenuKaart>
        </CeMenuKaart>
    </ceMenuKaart>
    <ceMenuKaartType>
        <CeMenuKaartType id="menuKaartType001">
            <menuKaartType>Dinerkaart</menuKaartType>
        </CeMenuKaartType>
    </ceMenuKaartType>
</msgAanbiedingMenuKaart>

Het hele bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgAanbiedingMenuKaart id="bericht003">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie4Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceMenuKaart>
            <CeMenuKaart id="menuKaart001">
                <ceInhoudMenuKaart>
                    <CeInhoudMenuKaart id="inhoudMenuKaart001">
                        <naamMenukaartItem>Carpatio</naamMenukaartItem>
                        <omschrijving>Dunne lapjes vlees + garneering</omschrijving>
                        <prijs>25.00</prijs>
                    </CeInhoudMenuKaart>
                    <CeInhoudMenuKaart id="inhoudMenuKaart002">
                        <naamMenukaartItem>Biefstuk</naamMenukaartItem>
                        <omschrijving>Biefstuk + gepofte aardappelen en garneering</omschrijving>
                        <prijs>35.00</prijs>
                    </CeInhoudMenuKaart>
                    <CeInhoudMenuKaart id="inhoudMenuKaart003">
                        <naamMenukaartItem>Vruchten</naamMenukaartItem>
                        <omschrijving>Verse vruchten</omschrijving>
                        <prijs>12.50</prijs>
                    </CeInhoudMenuKaart>
                </ceInhoudMenuKaart>
            </CeMenuKaart>
        </ceMenuKaart>
        <ceMenuKaartType>
            <CeMenuKaartType id="menuKaartType001">
                <menuKaartType>Dinerkaart</menuKaartType>
            </CeMenuKaartType>
        </ceMenuKaartType>
    </msgAanbiedingMenuKaart>
    <BerichtInTransactie4 id="BiT001">
        <identification />
    </BerichtInTransactie4>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling
        </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.4. Het vierde bericht (“vierde_bericht.xml”)

Nadat de klant de menukaart van de ober heeft ontvangen, wil de klant een vraag stellen. De klant in kwestie is gek op mayonaise en wil dit graag bij de gepofte aardappelen hebben. De vraag is natuurlijk of dit kan in een culinair goed aangeschreven restaurant. Om dit te vragen verstuurt de klant het vierde bericht naar de ober. Het bericht msgVraag bevat een complex element met daarin een simpel element waarmee de vraag gesteld kan worden. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgVraag id="bericht004">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie5Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceVraag>
            <CeVraag id="vraag001">
                <vraag>Kan er ook mayonaise bij de gepofte aardappelen geserveerd worden</vraag>
            </CeVraag>
        </ceVraag>
    </msgVraag>
    <BerichtInTransactie15 id="BiT001">
        <identification />
    </BerichtInTransactie15>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.5. Het vijfde en zesde bericht (“vijfde_bericht.xml” en “zesde_bericht.xml”)

De ober heeft een vraag van de klant gekregen, maar heeft hier zelf geen antwoord op. De ober zal nu de kok moeten raadplegen. Hij zal dit doen door de msgVraag uit transactie T2_VraagOberAanKok te versturen. Dit bericht kent als previous in de MITT het bericht msgVraag uit T1_Opname bestelling. Aangezien in dit bericht hetzelfde complexe element en simpele element voorkomt, dienen de waarden uit deze elementen zoals beschreven in de richtlijn ‘Hergebruik en blokkeren gegevenselement’ (zie hiervoor ook de toelichting in bijlage 5, paragraaf 1.2.2) te worden overgenomen.

Omdat de ober zo snel mogelijk antwoord wil hebben op de vraag van de klant, besluit de ober zijn vraag tegelijkertijd bij twee koks uit te zetten. Hierdoor worden twee instanties van het bericht en de transactie gecreëerd. Let op dat op de berichten wederom de richtlijn voor het overnemen en blokkeren van gegevenselementen van toepassing is. Het vijfde en zesde bericht worden hieronder weergegeven.

Het vijfde bericht

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgVraag id="bericht005">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht004</initiatingTransactionMessageID>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie11Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t2_VraagOberAanKokRef idref="transactie002" />
        </transaction>
        <ceVraag>
            <CeVraag id="vraag002">
                <vraag>Kan er ook mayonaise bij de gepofte aardappelen geserveerd worden</vraag>
            </CeVraag>
        </ceVraag>
    </msgVraag>
    <BerichtInTransactie11 id="BiT001">
        <identification />
    </BerichtInTransactie11>
    <t2_VraagOberAanKok id="transactie002">
        <number>2</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR003" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t2_VraagOberAanKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="DirkZwart">
        <userName>dz</userName>
        <name>Dirk Zwart</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR003">
        <contactPerson>
            <StandardPersonTypeRef idref="DirkZwart" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

Het zesde bericht

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgVraag id="bericht006">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht004</initiatingTransactionMessageID>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie11Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t2_VraagOberAanKokRef idref="transactie003" />
        </transaction>
        <ceVraag>
            <CeVraag id="vraag003">
                <vraag>Kan er ook mayonaise bij de gepofte aardappelen geserveerd worden</vraag>
            </CeVraag>
        </ceVraag>
    </msgVraag>
    <BerichtInTransactie11 id="BiT001">
        <identification />
    </BerichtInTransactie11>
    <t2_VraagOberAanKok id="transactie003">
        <number>3</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR004" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t2_VraagOberAanKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="RobTaal">
        <userName>rt</userName>
        <name>Rob Taal</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR004">
        <contactPerson>
            <StandardPersonTypeRef idref="RobTaal" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.6. Het zevende bericht (“zevende_bericht.xml”)

De persoon in de rol van kok waar het vijfde bericht naartoe is gezonden is Dirk Zwart. Dirk Zwart is een zeer ambitieuze kok met sterallures. Doordat hij de lat nogal hoog legt voor zichzelf, balanceert hij continu op de rand van overspannenheid. De vraag ten aanzien van de mayonaise is de druppel die de emmer doet overlopen. Dirk Zwart gooit zijn ovenhandschoen op de grond en gaat ervandoor om nooit meer terug te komen.

Om klanten niet te lang op hun bestelling en vragen te laten wachten wordt er per direct een nieuwe kok aangenomen en als opvolger benoemd. Het betreft Jan Toet. Het projectspecifieke bericht wordt hiervoor aangepast met een successor (zie file: 12_project_specifiek_bericht_vanaf_bericht_7.xml).

Als opvolger van Dirk Zwart besluit Jan Toet direct een positief antwoord te geven op de vraag van de klant die hij via de ober heeft gekregen. Let op dat op dit bericht wederom de richtlijn voor het overnemen en blokkeren van gegevenselementen van toepassing is. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgAntwoord id="bericht007">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht004</initiatingTransactionMessageID>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie12Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t2_VraagOberAanKokRef idref="transactie003" />
        </transaction>
        <ceVraag>
            <CeVraag id="vraag004">
                <vraag>Kan er ook mayonaise bij de gepofte aardappelen geserveerd worden</vraag>
            </CeVraag>
        </ceVraag>
        <ceAntwoord>
            <CeAntwoord id="antwoord001">
                <antwoord>Dat is prima</antwoord>
            </CeAntwoord>
        </ceAntwoord>
    </msgAntwoord>
    <BerichtInTransactie12 id="BiT001">
        <identification />
    </BerichtInTransactie12>
    <t2_VraagOberAanKok id="transactie003">
        <number>3</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR004" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t2_VraagOberAanKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="RobTaal">
        <userName>rt</userName>
        <name>Rob Taal</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR004">
        <successor>
            <PersonInRoleRef idref="PiR005" />
        </successor>
        <contactPerson>
            <StandardPersonTypeRef idref="RobTaal" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.7. Het achtste bericht (“achtste_bericht.xml”)

De ober heeft door middel van het zevende bericht een antwoord van een kok gekregen. Op basis van dit bericht wil de ober het antwoord versturen aan de klant. Om dit te doen dient de ober gebruik te maken van msgAntwoord uit de primaire transactie T1_OpnameBestelling. De previous in de MITT is in dit geval msgAntwoord uit transactie T2_VraagOberAanKok. De richtlijn voor het overnemen en blokkeren van gegevenselementen is hier ook van toepassing.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgAntwoord id="bericht008">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie12Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceVraag>
            <CeVraag id="vraag005">
                <vraag>Kan er ook mayonaise bij de gepofte aardappelen geserveerd worden</vraag>
            </CeVraag>
        </ceVraag>
        <ceAntwoord>
            <CeAntwoord id="antwoord002">
                <antwoord>Dat is prima</antwoord>
            </CeAntwoord>
        </ceAntwoord>
    </msgAntwoord>
    <BerichtInTransactie12 id="BiT001">
        <identification />
    </BerichtInTransactie12>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.8. Het negende bericht (“negende_bericht.xml”)

Nu de klant antwoord heeft op de vraag die hij aan de ober heeft gesteld kan de klant een bestelling plaatsen. Dit doet de klant met het bericht msgPlaatsingBestelling. In dit bericht bevindt zich een complex element in een complex element.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgPlaatsingBestelling id="bericht009">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie7Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling001">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling001">
                        <naamGerecht>Biefstuk</naamGerecht>
                        <opmerking>met mayonaise</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgPlaatsingBestelling>
    <BerichtInTransactie7 id="BiT001">
        <identification />
    </BerichtInTransactie7>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.9. Het tiende bericht (“tiende_bericht.xml”)

De ober heeft de bestelling nu van de klant gekregen en zal deze met het bericht msgPlaatsingBestelling uit transactie T3_OpdrachtKok (dit bericht heeft in de MITT als previous msgPlaatsingBestelling uit transactie T1_Opname bestelling). De richtlijn voor de overname en blokkering van gegevenselementen is weer in deze situatie van kracht. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgPlaatsingBestelling id="bericht010">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht009</initiatingTransactionMessageID>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie13Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t3_OpdrachtKokRef idref="transactie004" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling002">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling002">
                        <naamGerecht>Biefstuk</naamGerecht>
                        <opmerking>met mayonaise</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgPlaatsingBestelling>
    <BerichtInTransactie13 id="BiT001">
        <identification />
    </BerichtInTransactie13>
    <t3_OpdrachtKok id="transactie004">
        <number>4</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR005" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t3_OpdrachtKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.10. Het elfde bericht (“elfde_bericht.xml”)

De kok ontvangt de bestelling en gaat op zoek naar de mayonaise. Helaas is het potje al twee jaar verlopen. Hierdoor kan hij de bestelling in deze vorm niet aannemen. Hij verstuurt het bericht msgBestellingNietAkkoord naar de ober. De richtlijn voor de overname en blokkering van gegevens elementen is weer in deze situatie van kracht. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgBestellingNietAkkoord id="bericht011">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht009</initiatingTransactionMessageID>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie15Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t3_OpdrachtKokRef idref="transactie004" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling003">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling003">
                        <naamGerecht>Biefstuk</naamGerecht>
                        <opmerking>met mayonaise</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgBestellingNietAkkoord>
    <BerichtInTransactie15 id="BiT001">
        <identification />
    </BerichtInTransactie15>
    <t3_OpdrachtKok id="transactie004">
        <number>4</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR005" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t3_OpdrachtKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.11. Het twaalfde bericht (“twaalfde_bericht.xml”)

Als de ober het bericht van de kok ontvangt waarin de kok aangeeft dat hij niet akkoord gaat met de bestelling, kan de ober niets anders doen dan een bericht naar de klant versturen waarmee hij aangeeft dat de bestelling niet mogelijk is. Hij gebruikt hiervoor het bericht msgBestellingNietAkkoord uit T1_OpnameBestelling (dit bericht heeft in de MITT als previous msgBestellingNietAkkoord uit transactie T3_OpdrachtKok). De richtlijn voor de overname en blokkering van gegevenselementen is weer in deze situatie van kracht. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgBestellingNietAkkoord id="bericht012">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie8Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling004">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling004">
                        <naamGerecht>Biefstuk</naamGerecht>
                        <opmerking>met mayonaise</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgBestellingNietAkkoord>
    <BerichtInTransactie8 id="BiT001">
        <identification />
    </BerichtInTransactie8>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.12. Het dertiende bericht (“dertiende_bericht.xml”)

De klant is uiteraard niet blij als hij van de ober het bericht krijgt dat de bestelling niet mogelijk is. Hij overweegt boos het restaurant uit te lopen, maar gooit het vervolgens over een andere boeg. In plaats van de biefstuk bestelt hij alleen een Carpaccio. Hiervoor gebruikt hij het bericht msgPlaatsingBestelling. Omdat in het bericht de bestelling moet worden aangepast, wordt een uitzondering gemaakt op de richtlijn voor het overname en blokkering van gegevenselementen. In het raamwerk is hiervoor de elementcondition ElementCondition1 opgenomen. In deze conditie wordt aangegeven dat in deze MITT BerichtInTransactie9 de condition FREE is. Dit houdt in dat de bestellingen kunnen worden aangepast. De klant doet dit dan ook in dit bericht.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgPlaatsingBestelling id="bericht013">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie9Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling005">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling005">
                        <naamGerecht>Carpaccio</naamGerecht>
                        <opmerking>Ik hoop dat jullie dit wel hebben</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgPlaatsingBestelling>
    <BerichtInTransactie9 id="BiT001">
        <identification />
    </BerichtInTransactie9>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

De ober heeft de bestelling nu opnieuw van de klant gekregen en zal deze met het bericht msgPlaatsingBestelling uit transactie T3_OpdrachtKok (dit bericht heeft in de MITT als previous msgPlaatsingBestelling uit transactie T1_Opname bestelling). De richtlijn voor de overname en blokkering van gegevenselementen is weer in deze situatie van kracht. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgPlaatsingBestelling id="bericht014">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht013</initiatingTransactionMessageID>
        <initiatorToExecutor>true</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie13Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie005" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling006">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling006">
                        <naamGerecht>Carpatio</naamGerecht>
                        <opmerking>Ik hoop dat jullie dit wel hebben</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgPlaatsingBestelling>
    <BerichtInTransactie13 id="BiT001">
        <identification />
    </BerichtInTransactie13>
    <t3_OpdrachtKok id="transactie005">
        <number>5</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR005" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t3_OpdrachtKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.13. Het vijftiende bericht (“vijtiende_bericht.xml”)

De kok ontvangt de aangepaste bestelling. Carpaccio is nooit een een probleem, hij kan de bestelling dus aannemen. Hij verstuurt het bericht msgBestellingAccoord naar de ober. De richtlijn voor de overname en blokkering van gegevenselementen is weer in deze situatie van kracht. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgBestellingAkkoord id="bericht015">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatingTransactionMessageID>bericht013</initiatingTransactionMessageID>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie14Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie005" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling007">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling007">
                        <naamGerecht>Carpatio</naamGerecht>
                        <opmerking>Ik hoop dat jullie dit wel hebben</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgBestellingAkkoord>
    <BerichtInTransactie14 id="BiT001">
        <identification />
    </BerichtInTransactie14>
    <t3_OpdrachtKok id="transactie005">
        <number>5</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR005" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t3_OpdrachtKok>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <StandardPersonType id="JanToet">
        <userName>jt</userName>
        <name>Jan Toet</name>
    </StandardPersonType>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <kok id="kokRol">
        <name>Kok Rol</name>
        <description>Diegene die kookt</description>
    </kok>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR005">
        <contactPerson>
            <StandardPersonTypeRef idref="JanToet" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="kokRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>

2.2.14. Het zestiende bericht (“zestiende_bericht.xml”)

Als de ober het bericht van de kok ontvangt dat hij akkoord gaat met de bestelling kan de ober het bericht naar de klant versturen om de bestelling te bevestiging. Hij gebruikt hiervoor het bericht msgBestellingAccoord uit T1_OpnameBestelling (dit bericht heeft in de MITT als previous msgBestellingAccoord uit transactie T3_OpdrachtKok). De richtlijn voor de overname en blokkering van gegevenselementen is weer in deze situatie van kracht. De bericht is tevens het laatste bericht uit de primaire transactie T1_OpnameBestelling. De transactie is nu afgerond. Het bericht ziet er als volgt uit.

<?xml version="1.0" encoding="UTF-8"?>
<visiXML_MessageSchema xmlns="http://www.visi.nl/schemas/ 20160331 /TestFramework " 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.visi.nl/schemas/ 20160331 /TestFramework 10.xsd ">
    <msgBestellingAkkoord id="bericht016">
        <identification />
        <dateSend>2008-05-04T00:00:00.0Z</dateSend>
        <initiatorToExecutor>false</initiatorToExecutor>
        <messageInTransaction>
            <BerichtInTransactie10Ref idref="BiT001" />
        </messageInTransaction>
        <transaction>
            <t1_OpnameBestellingRef idref="transactie001" />
        </transaction>
        <ceBestelling>
            <CeBestelling id="bestelling008">
                <ceInhoudBestelling>
                    <CeInhoudBestelling id="inhoudBestelling008">
                        <naamGerecht>Carpatio</naamGerecht>
                        <opmerking>Ik hoop dat jullie dit wel hebben</opmerking>
                    </CeInhoudBestelling>
                </ceInhoudBestelling>
            </CeBestelling>
        </ceBestelling>
    </msgBestellingAkkoord>
    <BerichtInTransactie10 id="BiT001">
        <identification />
    </BerichtInTransactie10>
    <t1_OpnameBestelling id="transactie001">
        <number>1</number>
        <name />
        <description />
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <initiator>
            <PersonInRoleRef idref="PiR002" />
        </initiator>
        <executor>
            <PersonInRoleRef idref="PiR001" />
        </executor>
        <project>
            <ProjectType1Ref idref="Project1" />
        </project>
    </t1_OpnameBestelling>
    <ProjectType1 id="Project1">
        <name>Project Top Koks</name>
        <description>Project voor het opnemen van een bestelling </description>
        <startDate>2008-05-04T00:00:00.0Z</startDate>
        <endDate>2009-05-04T00:00:00.0Z</endDate>
        <ceSOAP>
            <CeSOAP id="ProjectGegevens">
                <sOAPProtocol>MTOM</sOAPProtocol>
                <sOAPServerURL>http://192.168.0.1/visi.wsdl</sOAPServerURL>
                <sOAPCentralServerURL>http://www.crow.nl/testcases/case001/visi.wsdl</sOAPCentralServerURL>
            </CeSOAP>
        </ceSOAP>
    </ProjectType1>
    <StandardOrganisationType id="consument">
        <name>Consument</name>
        <abbreviation>CSMT</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensConsument">
                <sOAPServerURL>http://192.168.0.102/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardOrganisationType id="restaurant">
        <name>Restaurant</name>
        <abbreviation>RSTR</abbreviation>
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <ceOrganisatie>
            <CeOrganisatie id="OrganisatieGegevensRestaurant">
                <sOAPServerURL>http://192.168.0.105/specifiek_project/visi.wsdl</sOAPServerURL>
            </CeOrganisatie>
        </ceOrganisatie>
    </StandardOrganisationType>
    <StandardPersonType id="KeesDeVries">
        <userName>kvd</userName>
        <name>Kees de Vries</name>
    </StandardPersonType>
    <StandardPersonType id="PietJansen">
        <userName>pj</userName>
        <name>Piet Jansen</name>
    </StandardPersonType>
    <klant id="klantRol">
        <name>Klant Rol</name>
        <description>Diegene die de klant is</description>
    </klant>
    <ober id="oberRol">
        <name>Ober Rol</name>
        <description>Diegene die serveert</description>
    </ober>
    <PersonInRole id="PiR001">
        <contactPerson>
            <StandardPersonTypeRef idref="KeesDeVries" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="consument" />
        </organisation>
        <role>
            <klantRef idref="klantRol" />
        </role>
    </PersonInRole>
    <PersonInRole id="PiR002">
        <contactPerson>
            <StandardPersonTypeRef idref="PietJansen" />
        </contactPerson>
        <organisation>
            <StandardOrganisationTypeRef idref="restaurant" />
        </organisation>
        <role>
            <klantRef idref="oberRol" />
        </role>
    </PersonInRole>
</visiXML_MessageSchema>
Clone this wiki locally