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>