Ik ben bezig met een (aangeleverde) XSD ietwat te verbouwen. We krijgen de XSD voorgeschreven door een derde partij, en ik wil daar eigenlijk zo weinig mogelijk aan veranderen om de integratie te bespoedigen (hoe meer ik aanpas, hoe meer zij in hun software moeten aanpassen, hoe langer het duurt). Ik heb nu de mogelijkheid van hun dus gekregen de XSD te corrigeren waar ik dat nodig vind.
De XSD is eigenlijk helemaal goed zoals 'ie is, er waren maar een paar kleinigheidjes die ik opgelost wilde hebben. Het relevante gedeelte van de "code":
En even voor de beeldvorming:

Mijn vraag is eigenlijk simpel: Ik heb de XSD dusdanig gewijzigd zodat bij een Import de Bestemming optioneel wordt (minoccurs=0). Bij een Export is de Herkomst optioneel (minoccurs=0). Deze waren eerst "verplicht". Bij de Binnenland meldingen is het echter nét anders. Hier bij is altijd minimaal 1 van de elementen verplicht (dus of een bestemming, of een herkomst) en is het toegestaan om ze allebei (dus bestemming én herkomst) op te nemen.
Nu zou je deze "minoccurs" dus eigenlijk conditioneel moeten kunnen maken op de een of andere manier, of misschien (maar dat zie ik ook zo snel niet) een hele vage constructie met allerlei "tussen-elementen" moeten maken. Maar zoals ik al aangaf wil ik het liefst zo min mogelijk aanpassen om het voor de andere partij zo makkelijk mogelijk te maken de wijzigingen door te voeren. Iemand enig idee hoe ik dit het best aan kan passen? Zoals ik het nu heb (minoccurs=0 voor beide elementen) zou een "Binnenland" melding zonder herkomst en bestemming dus valid zijn. Dat zal me overigens persoonlijk worst wezen, want dat soort dingen zou ik zelf gewoon in de software vangen. Ik wil de andere partij daar echter niet mee opzadelen als het niet nodig is en liever zorgen dat de XSD precies doet wat ze willen.
Ik kon op Google niet veel zinnigs vinden (veel mensen met dezelfde vraag, zelden antwoord en alle "antwoorden" waren dat "het niet kan"). Ik vrees zelf helaas ook dat het niet kan, maar ik wil het graag even bevestigd horen
De XSD is eigenlijk helemaal goed zoals 'ie is, er waren maar een paar kleinigheidjes die ik opgelost wilde hebben. Het relevante gedeelte van de "code":
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| <xs:element name="VervoerStroom">
<xs:complexType>
<xs:choice>
...
<xs:element name="Binnenland">
<xs:complexType>
<xs:sequence>
<xs:element name="Bestemming" minOccurs="0">
<xs:complexType>
<xs:choice>
....
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="Herkomst" minOccurs="0">
<xs:complexType>
<xs:choice>
....
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element> |
En even voor de beeldvorming:

Mijn vraag is eigenlijk simpel: Ik heb de XSD dusdanig gewijzigd zodat bij een Import de Bestemming optioneel wordt (minoccurs=0). Bij een Export is de Herkomst optioneel (minoccurs=0). Deze waren eerst "verplicht". Bij de Binnenland meldingen is het echter nét anders. Hier bij is altijd minimaal 1 van de elementen verplicht (dus of een bestemming, of een herkomst) en is het toegestaan om ze allebei (dus bestemming én herkomst) op te nemen.
Nu zou je deze "minoccurs" dus eigenlijk conditioneel moeten kunnen maken op de een of andere manier, of misschien (maar dat zie ik ook zo snel niet) een hele vage constructie met allerlei "tussen-elementen" moeten maken. Maar zoals ik al aangaf wil ik het liefst zo min mogelijk aanpassen om het voor de andere partij zo makkelijk mogelijk te maken de wijzigingen door te voeren. Iemand enig idee hoe ik dit het best aan kan passen? Zoals ik het nu heb (minoccurs=0 voor beide elementen) zou een "Binnenland" melding zonder herkomst en bestemming dus valid zijn. Dat zal me overigens persoonlijk worst wezen, want dat soort dingen zou ik zelf gewoon in de software vangen. Ik wil de andere partij daar echter niet mee opzadelen als het niet nodig is en liever zorgen dat de XSD precies doet wat ze willen.
Ik kon op Google niet veel zinnigs vinden (veel mensen met dezelfde vraag, zelden antwoord en alle "antwoorden" waren dat "het niet kan"). Ik vrees zelf helaas ook dat het niet kan, maar ik wil het graag even bevestigd horen
offtopic:
Als ik de XSD van de grond af had mogen bouwen had het er sowieso heel anders uit gezien, maar dat is dus in dit geval niet aan mij helaas
Als ik de XSD van de grond af had mogen bouwen had het er sowieso heel anders uit gezien, maar dat is dus in dit geval niet aan mij helaas
[ Voor 35% gewijzigd door RobIII op 12-10-2005 14:47 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
