Como gerar um arquivo XML de um conjunto de expressões XPath?
Eu quero ser capaz de gerar um arquivo XML completo, dado um conjunto de mapeamentos XPath.
A entrada pode ser especificada em dois mapeamentos: (1) Um que lista as expressões e valores XPath; e (2) o outro que define os namespaces apropriados.
/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
Para namespaces:
/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/'
Note também que é importante que eu também lide com o XPathAtributos expressões também. Por exemplo: eu também deveria ser capaz de manipular atributos, como:
/create/article/@type => richtext
O resultado final deve ser algo como:
<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: Esta é uma questão mais detalhada para um anteriorquestão Perguntei, embora devido a uma série de outros requisitos e esclarecimentos, fui recomendado para fazer uma pergunta mais ampla, a fim de atender às minhas necessidades.
Observe também que estou implementando isso em Java. Portanto, uma solução baseada em Java ou XSLT seria perfeitamente aceitável. thnx.
Nota adicional: Eu estou realmente procurando por umgenérico solução. O XML mostrado acima é apenas um exemplo.