Skip to Content
0
Apr 06, 2016 at 07:56 AM

PI / HCI useOneAsMany mapping question

78 Views

Hello everyone,

let's say we have following node structure :

/compoundemployee/person/employment_information -> 0:1 records

custom_string1

end_date

start_date

user_id

...

/compoundemployee/person/personal_information -> 0:n records

end_date

start_date

....

Question:

For selection of personal_information, personal_information/start_date needs to be >= employment_information/start_date <= personal_information/end_date.

I tried the mapping below, but for attached test data I get for person_id 2714 the personal_information from 2810. For 2810 I get the personal_information from 2830. There seems to be some context issue, but can't exactly point out why.

The personal_information/end_date value can be null, so I have added 'mapWithDefault'. To keep the queue consistent, I have added 'mapWithDefault' to personal_information in 'useOneAsMany', as i.e person_id 20 has no personal_information.

The context of employment_information/start_date below is changed to /person, this is a 0:1.

Test data attached :

  • the used xsd file
  • xml file with sample data
  • person_id's with no or multiple personal_information records are 20, 2090, 2112, 2173, 2490, 2510, 2671, 2714, 2791, 2810

Any clue?

Thanks again, appreciated -

Attachments