Как использовать переменные param при создании xml с помощью xslt
Я должен создать запрос SOAP с помощью XSLT. У меня есть парам (ы), определенные как показано ниже
<xsl:param name="EmployeeID"/>
<xsl:param name="FirstName"/>
<xsl:param name="MiddleName"/>
<xsl:param name="LastName"/>
Используя их, я пытаюсь создать XML (SOAP), как показано ниже
<cs:Users>
<cs:User EmployeeId="">
<cs:Contact>
<cs:Name First="" Prefix="" Middle="" Last=""/>
<cs:Contact>
<cs:User>
<cs:Users>
Я намерен использовать переменные, определенные как param в приведенном выше xml.
Я попробовал использовать тег, как показано ниже
<cs:User EmployeeId="<xsl:value-of select="$EmployeeID"/>">
Но это дает ошибку. Он не может распознать часть xslt.
Не могли бы вы мне помочь?
Править: Ошибка, которую я получаю, это "атрибут """не имеет значения"
Ниже приводится полный XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" exclude-result-prefixes="xsl pi this xsd op"
xmlns:pi="urn:com.workday/picof" xmlns:this="urn:this-stylesheet" xmlns:intsys="java:com.workday.esb.intsys.xpath.ParsedIntegrationSystemFunction" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:op="http://www.w3.org/2005/xpath-functions">
<xsl:param name="EmployeeID"/>
<xsl:param name="FirstName"/>
<xsl:param name="MiddleName"/>
<xsl:param name="LastName"/>
<xsl:param name="ActiveStatus"/>
<xsl:param name="OnLeave"/>
<xsl:param name="FLSA"/>
<xsl:param name="Division"/>
<xsl:param name="Manager"/>
<xsl:param name="Email"/>
<xsl:param name="Gender"/>
<xsl:param name="Position"/>
<xsl:param name="HireDate"/>
<xsl:param name="CurrentHireDate"/>
<xsl:param name="MonthsOfService"/>
<xsl:param name="Exempt"/>
<xsl:param name="Phone"/>
<xsl:param name="Location"/>
<xsl:param name="AddressLine1"/>
<xsl:param name="AddressLine2"/>
<xsl:param name="City"/>
<xsl:param name="State"/>
<xsl:param name="PostalCode"/>
<xsl:param name="Country"/>
<xsl:param name="BonusType"/>
<xsl:template match="/">
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<cs:SetUsers xmlns:cs="urn:Cornerstone:ClientData">
<cs:Users>
<cs:User Id="<xsl:value-of select="$EmployeeID"/>" Active="" Absent="" AllowReconcile="true">
<cs:Contact>
<cs:Name First="" Prefix="" Middle="" Last=""/>
<cs:Email><xsl:value-of select="$Email"/></cs:Email>
<cs:Phone Type=""><xsl:value-of select="Phone"/></cs:Phone>
<cs:Address CountryCode="">
<cs:Line1><xsl:value-of select="$AddressLine1"/></cs:Line1>
<cs:Line2><xsl:value-of select="$AddressLine2"/></cs:Line2>
<cs:City><xsl:value-of select="$City"/></cs:City>
<cs:State><xsl:value-of select="$State"/></cs:State>
<cs:PostalCode><xsl:value-of select="$PostalCode"/></cs:PostalCode>
</cs:Address>
</cs:Contact>
<cs:Organization Approvals="1">
<cs:Unit Type="Division"><xsl:value-of select="$Division"/></cs:Unit>
<cs:Unit Type="Cost Center">What goes here is a mystery!!<!-- <xsl:value-of select="$CostCenter"/>--></cs:Unit>
<cs:Unit Type="FLSA"><xsl:value-of select="$FLSA"/></cs:Unit>
<cs:Unit Type="Position"><xsl:value-of select="$Position"/></cs:Unit>
<cs:Unit Type="Location"><xsl:value-of select="$Location"/></cs:Unit>
<cs:Employment LastHireDate="" MonthsOfService="" OriginalHireDate="" Classification="" Status=""/>
<cs:Approver><xsl:value-of select="$Manager"/></cs:Approver>
<cs:Manager><xsl:value-of select="$Manager"/></cs:Manager>
</cs:Organization>
<cs:Demographic>
<cs:Gender><xsl:value-of select="$Gender"/></cs:Gender>
<cs:Ethnicity/>
</cs:Demographic>
<cs:Authentication>
<cs:Username><xsl:value-of select="$EmployeeID"/></cs:Username>
</cs:Authentication>
<cs:Custom>
<cs:Field Name="Bonus Type">
<xsl:choose>
<xsl:when test="$BonusType = 'Annual'">
<xsl:text>ANN</xsl:text>
</xsl:when>
<xsl:when test="$BonusType = 'Monthly'">
<xsl:text>MON</xsl:text>
</xsl:when>
<xsl:when test="$BonusType = 'Quarterly'">
<xsl:text>QTR</xsl:text>
</xsl:when>
</xsl:choose>
</cs:Field>
</cs:Custom>
</cs:User>
</cs:Users>
</cs:SetUsers>
</soap:Body>
</soap:Envelope>
Спасибо, Сэм.
1 ответ:
То, что вы ищете, - это шаблон значения атрибута (AVT)...
<cs:User EmployeeId="{$EmployeeID}">