我有一个循环节点NationalityDet,该节点拥有多个当前的先前国籍或公民身份(CurrentNatCit),我需要确保当前国籍地图的所有“国家/地区”值都转到该国籍节点,并且“当前公民身份”已映射到“公民身份”节点,所有以前的国籍/公民身份均映射到OtherNationality / OtherCitizenship(仅允许将一条记录作为节点的一项记录)。有任何想法吗?
<NationalityDet>
<NatCit>
<Type>NATIONALITY/CITIZENSHIP</Type>
<Status>CURRENT/FORMER</Status>
<Country>UK</Country>
</NatCit>
<OtherNatCit>
<Type>NATIONALITY/CITIZENSHIP</Type>
<Status>CURRENT/FORMER</Status>
<Country>UK</Country>
</OtherNatCit>
</NationalityDet>
<Person>
<Person1>
<Nationality>NATIONALITY/CURRENT</Nationality>
<Nationality>NATIONALITY/CURRENT</Nationality>
<Nationality>NATIONALITY/CURRENT</Nationality>
<Citizenship>CITIZENSHIP/CURRENT</Citizenship>
<Citizenship>CITIZENSHIP/CURRENT</Citizenship>
<Citizenship>CITIZENSHIP/CURRENT</Citizenship>
<OtherNationality>
<Nationality>NATIONALITY/FORMER</Nationality>
<Nationality>NATIONALITY/FORMER</Nationality>
<Nationality>NATIONALITY/FORMER</Nationality>
</OtherNationality>
<OtherCitizenship>CITIZENSHIP/FORMER</OtherCitizenship>
</Person1>
</Person>
目前已经使用了您提到的循环函子和一些等于和&的数字来进行此映射。我被困在计算来自两个不同父节点的TYPE = CITIZENSHIP和STATUS = FORMER的OtherCitizenship的节点。有什么想法吗?
从您的问题和示例中还不清楚您要映射到什么位置。
但是您可能需要的模式如下。添加一个循环的functoid,它既可以到达单例节点又可以到达重复节点。添加一个迭代函子,该函子的等价函子和大于函子的函数都具有第二个固定值1,并分别映射到单例和重复节点。将源字段映射到两个字段。
问题更改后更新。
因此,假设您具有以下XML
<NationalityDet>
<NatCit>
<Type>NATIONALITY</Type>
<Status>CURRENT</Status>
<Country>UK</Country>
</NatCit>
<NatCit>
<Type>CITIZENSHIP</Type>
<Status>CURRENT</Status>
<Country>Netherlands</Country>
</NatCit>
<NatCit>
<Type>NATIONALITY</Type>
<Status>FORMER</Status>
<Country>Brazil</Country>
</NatCit>
<NatCit>
<Type>CITIZENSHIP</Type>
<Status>FORMER</Status>
<Country>USA</Country>
</NatCit>
<OtherNatCit>
<Type>NATIONALITY</Type>
<Status>CURRENT</Status>
<Country>Australia</Country>
</OtherNatCit>
<OtherNatCit>
<Type>CITIZENSHIP</Type>
<Status>CURRENT</Status>
<Country>New Zealand</Country>
</OtherNatCit>
<OtherNatCit>
<Type>NATIONALITY</Type>
<Status>FORMER</Status>
<Country>Argentina</Country>
</OtherNatCit>
<OtherNatCit>
<Type>CITIZENSHIP</Type>
<Status>FORMER</Status>
<Country>Germany</Country>
</OtherNatCit>
</NationalityDet>
然后您的地图将如下所示。
I will explain the highlighted shapes, the rest follow the same pattern. From top to bottom, left to right.
然后,我复制了第一组,并将NATIONALITY更改为CITIZENSHIP,并链接到相同的输入字段,但是将值映射的输出放置为Citizenship。
然后,我复制了第一组并将CURRENT更改为FORMER并链接到相同的输入字段,但是将值映射的输出放置到OtherNationality \ Nationality。
然后,我复制了第二组(具有CITIZENSHIP)并将CURRENT更改为FORMER并链接到相同的输入字段,但是将值映射的输出放置到OtherCitenship。
以下是输出。
<Person>
<Person1>
<Nationality>UK</Nationality>
<Nationality>Australia</Nationality>
<Citizenship>Netherlands</Citizenship>
<Citizenship>New Zealand</Citizenship>
<OtherNationality>
<Nationality>Brazil</Nationality>
<Nationality>Argentina</Nationality>
</OtherNationality>
<OtherCitizenship>USA</OtherCitizenship>
<OtherCitizenship>Germany</OtherCitizenship>
</Person1>
</Person>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句