Моя существующая карта преобразует человека из исходной схемы в человека из целевой схемы с использованием функтоидов на карте на основе типа и ряда других логических схем. С недавним изменением схемы назначения мне нужно изменить преобразование, чтобы использовать ключевой (guid) узел, чтобы мы могли сгруппировать данные.
Я хотел бы реализовать встроенный XSLT-скрипт для чего-то вроде // Person * / [Key = same], но не уверен в XSLT для этого.
Пример ввода:
<Person>
<PersonType>PartnerParentsFarther</PersonType>
<Name>
<title>MR</title>
<Gender>MALE</Gender>
...
</Name>
<Address/>
<PersonKey>
<Key>a1093c4a-7c53-4de5-ad30-cb4140aec58</Key>
<ParentKey/>
</PersonKey>
</Person>
<Person>
<PersonType>PartnerParentsMother</PersonType>
<Name>
<title>MRS</title>
<Gender>FEMALE</Gender>
...
</Name>
<Address/>
<PersonKey>
<Key>a1093c4a-7c53-4de5-ad30-cb4140aec58</Key>
<ParentKey/>
</PersonKey>
</Person>
<Person>
<PersonType>PartnerParentsFarther</PersonType>
<Name>
<title>MR</title>
<Gender>MALE</Gender>
...
</Name>
<Address/>
<PersonKey>
<Key>a1093c4a-7c53-4de5-ad30-cb4140aec59</Key>
<ParentKey/>
</PersonKey>
</Person>
<Person>
<PersonType>PartnerParentsMother</PersonType>
<Name>
<title>MRS</title>
<Gender>FEMALE</Gender>
...
</Name>
<Address/>
<PersonKey>
<Key>a1093c4a-7c53-4de5-ad30-cb4140aec59</Key>
<ParentKey/>
</PersonKey>
</Person>
Пример вывода в настоящее время:
<PartnerParents>
<Father>
<Title>MR</Title>
<Gender>MALE</Gender>
</Father>
<Father>
<Title>MR</Title>
<Gender>MALE</Gender>
</Father>
<Mother>
<Title>MRS</Title>
<Gender>FEMALE</Gender>
</Mother>
<Mother>
<Title>MRS</Title>
<Gender>FEMALE</Gender>
</Mother>
</PartnerParents>
Пример требуемого вывода, основанного на тех же ключевых значениях:
<PartnerParents>
<Father>
<Title>MR</Title>
<Gender>MALE</Gender>
</Father>
<Mother>
<Title>MRS</Title>
<Gender>FEMALE</Gender>
</Mother>
</PartnerParents>
<PartnerParents>
<Father>
<Title>MR</Title>
<Gender>MALE</Gender>
</Father>
<Mother>
<Title>MRS</Title>
<Gender>FEMALE</Gender>
</Mother>
</PartnerParents>