Wijzigingsverzoek (issue-id 2.16.840.1.113883.2.4.3.11.60.100.6.65) |
Laatst toegekend aan 'Alexander Henket' |
Issue | Aanpassen specificatie tbv jaxb-code | |
---|---|---|
Id | jgz-issue-65 | |
Type | Wijzigingsverzoek | |
Status | ![]() |
|
Prioriteit | normaal | |
Object(en) | Template A_CoverageNL [minimal] jgz-template-132 (2012‑08‑01) | |
![]() |
![]() |
|
Auteur | Alexander Henket | |
Omschrijving | Uitgevoerd | |
![]() |
Toegekend aan Alexander Henket (id#2) op 2013‑09‑17 22:49:03 | |
Auteur | toegekend door Alexander Henket (id#2) | |
Omschrijving | Na enige mailwisseling wordt de oplossing dat de nullFlavor wordt verplaatst naar het element id onder coveredParty. Dit is binnen het internationale XML Schema dat wordt gedeeld door meerdere toepassingen en daardoor bij voorkeur niet aangepast wordt. | |
![]() |
![]() |
|
Auteur | Rens Verhage | |
Omschrijving |
Ik heb een probleem waar ik nog geen oplossing voor zie. Het gaat om een element dat
niet in de eerste kwalificatieset zit, maar wij wel in het bericht zetten, namelijk
element 53: Ziektekostenverzekering (ja/nee).
Volgens template A_Coverage_minimal moet ik o.a. het volgende in het bericht plaatsen:
<coveredParty typeCode="COV" xsi:nil="true" nullFlavor="NI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
/>
Zoals je wellicht weet maken wij gebruik van JAXB om onze Java objecten om te zetten
naar de Hl7v3 XML. JAXB ondersteunt zogenaamde 'nillable' elementen, d.w.z. als zo'n
element niet geïnitialiseerd (null) is dan genereert JAXB hiervoor toch een XML-element,
maar dan met xsi:nil="true", precies zoals de specificatie hierboven het voorschrijft.
Echter, wanneer coveredParty null is, dan is er geen object en heb ik dus ook geen
object waar ik attributen aan kan toevoegen, dus het attribuut typeCode="COV" kan
ik niet genereren op deze manier. JAXB genereert dan:
<coveredParty xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
/>
Dit is volgens de schema's niet valide, aangezien coveredParty als element wel aanwezig
is, maar het verplichte attribuut typeCode="COV" niet.
Om dit op te lossen moet ik in Java de coveredParty property initialiseren ipv null
te laten. Dan kan ik de typeCode en nullFlavor erop zetten. JAXB genereert dan het
volgende:
<coveredParty typeCode="COV" nullFlavor="NI" />
Nu is er een ander probleem. Omdat coveredParty in Java niet meer null is, genereert
JAXB ook geen xsi:nil="true" meer. Gevolg is dat nu validatie tegen de schematron
faalt, want ik moet xsi:nil="true" genereren.
Zoals je ziet bevind ik me in een Catch-22 en kan ik geen kant op. Kan in de schema's
aangepast worden dat een typeCode niet meer verplicht is wanneer het element nil is?
Of moet de schematron worden aangepast?
|