Мне нужно преобразовать файл XML с несколькими сложными элементами в плоскую структуру. Это пример структуры моего большого XML-файла, который должен быть отформатирован в плоскую структуру, как в требуемом выводе.
Ввод XML -
<?xml version="1.0" encoding="UTF-8"?>
<tns:Response xmlns:tns="http://www.example.org/response" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/response response.xsd ">
<tns:Consumer>
<tns:ConsumerID>tns:ConsumerID</tns:ConsumerID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE1</tns:PEID>
<tns:Customer>
<tns:CustID>1</tns:CustID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE2</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE1</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Customer>
<tns:Account>
<tns:AccountId>1</tns:AccountId>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE3</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE2</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Account>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE3</tns:CEID>
<tns:Customer>
<tns:CustID>1</tns:CustID>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE4</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE4</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Customer>
<tns:Account>
<tns:AccountId>1</tns:AccountId>
<tns:Relation>
<tns:ParentEntity>
<tns:PEID>PE5</tns:PEID>
<tns:Customer/>
<tns:Account/>
</tns:ParentEntity>
<tns:ChildEntity>
<tns:CEID>CE5</tns:CEID>
<tns:Customer/>
<tns:Account/>
</tns:ChildEntity>
</tns:Relation>
</tns:Account>
</tns:ChildEntity>
</tns:Relation>
</tns:Consumer>
</tns:Response>
Требуемый выходной XML -
<?xml version="1.0" encoding="UTF-8"?>
<tns:Response xmlns:tns="http://www.example.org/Required" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/Required Required.xsd ">
<tns:Consumer>
<tns:Customer>
<tns:CustID>tns:CustID</tns:CustID>
</tns:Customer>
<tns:Account>
<tns:AccountId>tns:AccountId</tns:AccountId>
</tns:Account>
<tns:Customer>
<tns:CustID>tns:CustID</tns:CustID>
</tns:Customer>
<tns:Account>
<tns:AccountId>tns:AccountId</tns:AccountId>
</tns:Account>
<tns:Customer/>
<tns:Account/>
<tns:Customer/>
<tns:Account/>
</tns:Consumer>
</tns:Response>
Выходной xml должен иметь только сложные элементы клиента и учетной записи в плоской структуре. Как этого добиться с помощью XSLT. Любая помощь приветствуется.
Заранее спасибо.