开发者

XML to SOAP transformation

I am new to XML, XSLT and SOAP and I would like to know whether it's possible to transform this XML file

<?xml version="1.0" encoding="UTF-8"?>

<SEARCHREQUEST>

    <PSSSEARCHPARAM1>Database name</PSSSEARCHPARAM1>
    <PSSSEARCHPARAM2>Description</PSSSEARCHPARAM2>
    <PSSSEARCHPARAM3>Document number</PSSSEARCHPARAM3>
    <PSSSEARCHPARAM4>Belong To</PSSSEARCHPARAM4>

</SEARCHREQUEST>

into this SOAP request

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header/>
<soap:Body>

    <wor:SearchDocuments xmlns:wor="http://worksite.imanage.com">

        <wor:Databases>
            <wor:string>Database name</wor:string>
        <开发者_Go百科;/wor:Databases>

        <wor:ProfileSearchParameters>

            <wor:ProfileSearchParameter>    
                <wor:AttributeID>imProfileDescription</wor:AttributeID>
                <wor:SearchValue>Description</wor:SearchValue>
            </wor:ProfileSearchParameter>

            <wor:ProfileSearchParameter>
                <wor:AttributeID>imProfileCustom3</wor:AttributeID>
                <wor:SearchValue>Belong To</wor:SearchValue>
            </wor:ProfileSearchParameter>

            <wor:ProfileSearchParameter>
                <wor:AttributeID>imProfileCustom4</wor:AttributeID>
                <wor:SearchValue>APP, 20</wor:SearchValue>
            </wor:ProfileSearchParameter>

            <wor:ProfileSearchParameter>
                <wor:AttributeID>imProfileDocNum</wor:AttributeID>
                <wor:SearchValue>Document number</wor:SearchValue>
            </wor:ProfileSearchParameter>

        </wor:ProfileSearchParameters>

        <wor:SearchEmail>imSearchDocumentsOnly</wor:SearchEmail>

        <wor:OutputMask>Profile</wor:OutputMask>

        <wor:OutputProfile>

            <!-- Displays the document number-->
            <wor:imProfileAttributeID>imProfileDocNum</wor:imProfileAttributeID>

            <!-- Displays the document description/title-->
            <wor:imProfileAttributeID>imProfileDescription</wor:imProfileAttributeID>

            <!--Displays the document version-->
            <wor:imProfileAttributeID>imProfileVersion</wor:imProfileAttributeID>

            <!--Displays the standard id-->
            <wor:imProfileAttributeID>imProfileCustom16</wor:imProfileAttributeID>

            <!--Display the "Belong to" field-->
            <wor:imProfileAttributeID>imProfileCustom3</wor:imProfileAttributeID>

            <!--Displays the database name-->
            <wor:imProfileAttributeID>imProfileDatabase</wor:imProfileAttributeID>

            <!--Displays the document extension-->
            <wor:imProfileAttributeID>imProfileExtension</wor:imProfileAttributeID>

        </wor:OutputProfile>
    </wor:SearchDocuments>
</soap:Body>
</soap:Envelope>

using XSLT only. If it's possible, could you point me to some examples that show how to accomplish this. "XSLT 2.0 and XPath 2.0 Programmer's Reference (4th ed.)" by Michael Kay has plenty of examples of how to transform XML to HTML but nothing on XML to SOAP transformations. The closest thing I could find is here

http://wiki.netbeans.org/TransformingSOAPMessagesWithXSLT

which shows how to transform SOAP requests, which isn't what I need. Thank you for your help in advance.


So, or your question is really simple, or I'm missing something obvious...Are you searching for something like this?

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/SEARCHREQUEST">
        <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
            <soap:Header/>
            <soap:Body>

                <wor:SearchDocuments xmlns:wor="http://worksite.imanage.com">

                    <wor:Databases>
                        <wor:string><xsl:value-of select="PSSSEARCHPARAM1"/></wor:string>
                    </wor:Databases>

                    <wor:ProfileSearchParameters>

                        <wor:ProfileSearchParameter>    
                            <wor:AttributeID>imProfileDescription</wor:AttributeID>
                            <wor:SearchValue><xsl:value-of select="PSSSEARCHPARAM2"/></wor:SearchValue>
                        </wor:ProfileSearchParameter>

                        <wor:ProfileSearchParameter>
                            <wor:AttributeID>imProfileCustom3</wor:AttributeID>
                            <wor:SearchValue><xsl:value-of select="PSSSEARCHPARAM4"/></wor:SearchValue>
                        </wor:ProfileSearchParameter>

                        <wor:ProfileSearchParameter>
                            <wor:AttributeID>imProfileCustom4</wor:AttributeID>
                            <wor:SearchValue>APP, 20</wor:SearchValue>
                        </wor:ProfileSearchParameter>

                        <wor:ProfileSearchParameter>
                            <wor:AttributeID>imProfileDocNum</wor:AttributeID>
                            <wor:SearchValue><xsl:value-of select="PSSSEARCHPARAM3"/></wor:SearchValue>
                        </wor:ProfileSearchParameter>

                    </wor:ProfileSearchParameters>

                    <wor:SearchEmail>imSearchDocumentsOnly</wor:SearchEmail>

                    <wor:OutputMask>Profile</wor:OutputMask>

                    <wor:OutputProfile>

                        <!-- Displays the document number-->
                        <wor:imProfileAttributeID>imProfileDocNum</wor:imProfileAttributeID>

                        <!-- Displays the document description/title-->
                        <wor:imProfileAttributeID>imProfileDescription</wor:imProfileAttributeID>

                        <!--Displays the document version-->
                        <wor:imProfileAttributeID>imProfileVersion</wor:imProfileAttributeID>

                        <!--Displays the standard id-->
                        <wor:imProfileAttributeID>imProfileCustom16</wor:imProfileAttributeID>

                        <!--Display the "Belong to" field-->
                        <wor:imProfileAttributeID>imProfileCustom3</wor:imProfileAttributeID>

                        <!--Displays the database name-->
                        <wor:imProfileAttributeID>imProfileDatabase</wor:imProfileAttributeID>

                        <!--Displays the document extension-->
                        <wor:imProfileAttributeID>imProfileExtension</wor:imProfileAttributeID>

                    </wor:OutputProfile>
                </wor:SearchDocuments>
            </soap:Body>
        </soap:Envelope>        
    </xsl:template>

</xsl:stylesheet>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜