У меня есть древовидные данные типа: 1 субъект, 2 паспорта, 2 адреса - это одна сущность. Как сериализовать в xml данные дерева с вложенными тегами xml? Тип данных:
![enter image description here](https://i.stack.imgur.com/DsPWH.png)
Когда я строю xml в clob с XMLAGG, я получаю такую структуру с дублирующимися тегами Пример:
<xml>
<person>
<title></title>
<document1></document1>
<document2></document2>
<adress1></adress1>
<adress2></adress2>
<adress1></adress1>
<phone1></phone1>
<phone2></phone2>
<phone3></phone3>
<phone1></phone1>
<phone2></phone2>
<phone3></phone3>
</person>
</xml>
Это мой запрос на сборку XML в CLOB:
---XMLPERSOM
SELECT XMLELEMENT ("Person",
XMLELEMENT ("ReferenceCode", SBS.ReferenceCode),
XMLELEMENT ("LastName", SBS.LastName),
XMLELEMENT ("FirstName", SBS.FirstName),
XMLELEMENT ("MiddleName", SBS.MiddleName),
XMLELEMENT ("BirthDate", SBS.BirthDate),
XMLELEMENT ("BirthPlace", SBS.BirthPlace),
XMLELEMENT ("sourceCode", SBS.sourceCode),
XMLELEMENT ("GroupCode", SBS.GroupCode),
--XMLDOCUMENTS
XMLELEMENT ("Documents",
XMLAGG(
XMLELEMENT ("Document",
XMLELEMENT ("Type", DCS.Type),
XMLELEMENT ("Series", DCS.Series),
XMLELEMENT ("Number", DCS.NumberID),
XMLELEMENT ("IssueDate", DCS.IssueDate),
XMLELEMENT ("IssueAuthority", DCS.IssueAuthority)))),
XMLELEMENT ("Addresses",
XMLAGG(
XMLELEMENT ("Address",
XMLELEMENT ("Type", ADDS.Type),
XMLELEMENT ("Location", ADDS.Location),
XMLELEMENT ("Street", ADDS.Street),
XMLELEMENT ("PostalCode", ADDS.PostalCode),
XMLELEMENT ("Country", ADDS.RU),
XMLELEMENT ("Region", ADDS.Region)))),
)
FROM SUBJECT_SEGMENT SBS
LEFT JOIN DOCUMENT_SEGMENT DCS ON SBS.ID = DCS.SUBJECT_ID
LEFT JOIN ADDRESS_SEGMENT ADDS ON SBS.ID = ADDS.SUBJECT_ID
GROUP BY SBS.ReferenceCode,
SBS.LastName,
SBS.FirstName,
SBS.MiddleName,
SBS.BirthDate,
SBS.BirthPlace,
SBS.sourceCode,
SBS.GroupCode
В результате у меня есть дубликаты тегов или дубликат Clob xml. Мне нужно иметь один сабл и не иметь дубликатов тегов. Спасибо за помощь!