Jak wygenerować plik XML z zestawu wyrażeń XPath?

Chcę móc wygenerować kompletny plik XML, biorąc pod uwagę zestaw mapowań XPath.

Dane wejściowe można określić w dwóch odwzorowaniach: (1) Jeden z nich zawiera listę wyrażeń i wartości XPath; oraz (2) drugi, który definiuje odpowiednie przestrzenie nazw.

/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

W przypadku przestrzeni nazw:

/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/'

Zauważ również, że ważne jest, aby radzić sobie także z XPathAtrybuty wyrażenia. Na przykład: Powinienem również być w stanie obsłużyć atrybuty, takie jak:

/create/article/@type => richtext

Końcowy wynik powinien wyglądać mniej więcej tak:

<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: To jest bardziej szczegółowe pytanie do poprzedniegopytanie zapytałem, chociaż ze względu na szereg dalszych wymagań i wyjaśnień, zalecono mi zadanie bardziej ogólnego pytania w celu zaspokojenia moich potrzeb.

Zauważ także, że implementuję to w Javie. Zatem zarówno oparte na Javie, jak i oparte na XSLT rozwiązanie byłoby doskonale do przyjęcia. thnx.

Dalsza uwaga: naprawdę szukamrodzajowy rozwiązanie. Przedstawiony powyżej XML to tylko przykład.

questionAnswers(2)

yourAnswerToTheQuestion