XSLT Stylesheet Example

Use the example XSLT stylesheet to understand the structure required by Unwired Platfrom.

The bolded elements are required. The <xsl:stylesheet> needs a <xsl:template> element. The first child element of <xsl:template> must be the <data> that also requires the a metadata <Record> element.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:ns1="urn:Sample_Enrollments" exclude-result-prefixes="ns1"> 
        <xsl:template match="//ns1:OpGetListResponse"> 
                <data> 
                        <Record> 
                                <Field op_label="Class_Cost" op_position="1" op_datatype="DECIMAL" op_nullable="false">Class_Cost</Field> 
                                <Field op_label="Class_ID" op_position="2" op_datatype="STRING" op_nullable="false">Class_ID</Field> 
                                <Field op_label="Class_Start_Date___Time" op_position="3" op_datatype="DATETIME" op_nullable="false">Class_Start_Date___Time</Field> 
                                <Field op_label="Class_Title" op_position="4" op_datatype="STRING" op_nullable="false">Class_Title</Field> 
                                <Field op_label="Enrollee_Login" op_position="5" op_datatype="STRING" op_nullable="false">Enrollee_Login</Field> 
                                <Field op_label="Temp_Number" op_position="6" op_datatype="INT" op_nullable="true">Temp_Number</Field> 
                        </Record> 
                        <xsl:for-each select="ns1:getListValues"> 
                                <Record> 
                                        <Field> 
                                                <xsl:attribute name="op_position">1</xsl:attribute> 
                                                <xsl:value-of select="ns1:Class_Cost"/> 
                                        </Field> 
                                        <Field> 
                                                <xsl:attribute name="op_position">2</xsl:attribute> 
                                                <xsl:value-of select="ns1:Class_ID"/> 
                                        </Field> 
                                        <Field> 
                                                <xsl:attribute name="op_position">3</xsl:attribute> 
                                                <xsl:value-of select="ns1:Class_Start_Date___Time"/> 
                                        </Field> 
                                        <Field> 
                                                <xsl:attribute name="op_position">4</xsl:attribute> 
                                                <xsl:value-of select="ns1:Class_Title"/> 
                                        </Field> 
                                        <Field> 
                                                <xsl:attribute name="op_position">5</xsl:attribute> 
                                                <xsl:value-of select="ns1:Enrollee_Login"/> 
                                        </Field> 
                                        <Field> 
                                                <xsl:attribute name="op_position">6</xsl:attribute> 
                                                <xsl:value-of select="ns1:Temp_Number"/> 
                                        </Field> 
                                </Record> 
                        </xsl:for-each> 
                </data> 
        </xsl:template> 
</xsl:stylesheet> 

If you use this style sheet, the output generated by this transform would be:

<data> 
        <Record> 
                <Field op_label="Class_Cost" op_position="1" op_datatype="DECIMAL" op_nullable="false">Class_Cost</Field> 
                <Field op_label="Class_ID" op_position="2" op_datatype="STRING" op_nullable="false">Class_ID</Field> 
                <Field op_label="Class_Start_Date___Time" op_position="3" op_datatype="DATETIME" op_nullable="false">Class_Start_Date___Time</Field> 
                <Field op_label="Class_Title" op_position="4" op_datatype="STRING" op_nullable="false">Class_Title</Field> 
                <Field op_label="Enrollee_Login" op_position="5" op_datatype="STRING" op_nullable="false">Enrollee_Login</Field> 
                <Field op_label="Temp_Number" op_position="6" op_datatype="INT" op_nullable="true">Temp_Number</Field> 
        </Record> 
        <Record> 
                <Field op_position="1">100.00</Field> 
                <Field op_position="2">00001</Field> 
                <Field op_position="3">2010-07-02T10:27:35-07:00</Field> 
                <Field op_position="4">Managing Within the Law</Field> 
                <Field op_position="5">Demo</Field> 
                <Field op_position="6"/> 
        </Record> 
        <Record> 
                <Field op_position="1">150.00</Field> 
                <Field op_position="2">00005</Field> 
                <Field op_position="3">2005-11-17T08:00:00-08:00</Field> 
                <Field op_position="4">Microsoft Word for Beginners</Field> 
                <Field op_position="5">Demo</Field> 
                <Field op_position="6"/> 
        </Record> 
        <Record> 
                <Field op_position="1">299.00</Field> 
                <Field op_position="2">00006</Field> 
                <Field op_position="3">2005-11-15T08:00:00-08:00</Field> 
                <Field op_position="4">Meeting Planning and Facilitation</Field> 
                <Field op_position="5">Demo</Field> 
                <Field op_position="6"/> 
        </Record> 
</data>