Как создать файл XML из набора выражений XPath?
Я хочу иметь возможность генерировать полный файл XML, учитывая набор сопоставлений XPath.
Входные данные могут быть указаны в двух сопоставлениях: (1) одно, в котором перечислены выражения и значения XPath; и (2) другой, который определяет соответствующие пространства имен.
/create/article[1]/id => 1
/create/article[1]/description => bar
/create/article[1]/name[1] => foo
/create/article[1]/price[1]/amount => 00.00
/create/article[1]/price[1]/currency => USD
/create/article[2]/id => 2
/create/article[2]/description => some name
/create/article[2]/name[1] => some description
/create/article[2]/price[1]/amount => 00.01
/create/article[2]/price[1]/currency => USD
Для пространств имен:
/create => xmlns:ns1='http://predic8.com/wsdl/material/ArticleService/1/
/create/article => xmlns:ns1='http://predic8.com/material/1/‘
/create/article/price => xmlns:ns1='http://predic8.com/common/1/‘
/create/article/id => xmlns:ns1='http://predic8.com/material/1/'
Также обратите внимание, что важно, чтобы я также имел дело с XPathAttributes выражения также. Например: я также должен иметь возможность обрабатывать атрибуты, такие как:
/create/article/@type => richtext
Окончательный результат должен выглядеть примерно так:
<ns1:create xmlns:ns1='http://predic8.com/wsdl/material/ArticleService/1/'>
<ns1:article xmlns:ns1='http://predic8.com/material/1/‘ type='richtext'>
<name>foo</name>
<description>bar</description>
<ns1:price xmlns:ns1='http://predic8.com/common/1/'>
<amount>00.00</amount>
<currency>USD</currency>
</ns1:price>
<ns1:id xmlns:ns1='http://predic8.com/material/1/'>1</ns1:id>
</ns1:article>
<ns1:article xmlns:ns1='http://predic8.com/material/2/‘ type='richtext'>
<name>some name</name>
<description>some description</description>
<ns1:price xmlns:ns1='http://predic8.com/common/2/'>
<amount>00.01</amount>
<currency>USD</currency>
</ns1:price>
<ns1:id xmlns:ns1='http://predic8.com/material/2/'>2</ns1:id>
</ns1:article>
</ns1:create>
PS: это более подробный вопрос к предыдущемувопрос спросил, хотя из-за ряда дополнительных требований и разъяснений, мне было рекомендовано задать более широкий вопрос для удовлетворения моих потребностей.
Обратите внимание, я реализую это в Java. Таким образом, решение на основе Java или XSLT будет вполне приемлемым. Thnx.
Дальнейшее примечание: я действительно ищуgeneric решение. XML, показанный выше, является только примером.