<xsl:template match="/">
<xsl:apply-templates select="mea:PublishVS_PPWO"/>
</xsl:template>
<xsl:template match="mea:PublishVS_PPWO">
<xsl:apply-templates select="mea:VS_PPWOSet"/>
</xsl:template>
<xsl:template match="mea:VS_PPWOSet">
<xsl:apply-templates select="mea:WORKORDER"/>
</xsl:template>
<xsl:template match="mea:WORKORDER">
<ExecuteMultipleOperations xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Operations>
<Operation xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Object>
<Object xsi:type="Task">
<xsl:apply-templates select="mea:WONUM" />
<xsl:call-template name="formatDateTime">
<xsl:with-param name="dateTime" select="mea:STATUSDATE" />
</xsl:call-template>
<xsl:call-template name="TLS"></xsl:call-template>
<xsl:apply-templates select="mea:FAILUREREPORT[mea:TYPE='PROBLEM']/mea:FAILURECODE" />
<xsl:apply-templates select="mea:FAILUREREPORT[mea:TYPE='CAUSE']/mea:FAILURECODE" />
<xsl:apply-templates select="mea:FAILUREREPORT[mea:TYPE='REMEDY']/mea:FAILURECODE" />
<xsl:call-template name="TLS2"></xsl:call-template>
</Object>
</Object>
</Operation>
</Operations>
</ExecuteMultipleOperations>
</xsl:template>
<xsl:template match="mea:WONUM">
<ExternalRefID><xsl:value-of select="." /></ExternalRefID>
<Status>Completed</Status>
</xsl:template>
<xsl:template name="formatDateTime">
<xsl:param name="dateTime" />
<xsl:variable name="date">
<xsl:value-of select="substring-before($dateTime, 'T')" />
</xsl:variable>
<xsl:variable name="time">
<xsl:value-of select="substring-before(substring-after($dateTime, 'T'), '+')" />
</xsl:variable>
<CompletionDate><xsl:value-of select="concat($date,' ',$time)" /></CompletionDate>
</xsl:template>
<xsl:template name="TLS">
<TLSMissedAppointmentReason></TLSMissedAppointmentReason>
<TLSMissedCommitmentReason></TLSMissedCommitmentReason>
<TLSAction></TLSAction>
</xsl:template>
<xsl:template match="mea:FAILUREREPORT[mea:TYPE='PROBLEM']/mea:FAILURECODE">
<TLSClearanceCode1><xsl:value-of select="." /></TLSClearanceCode1>
</xsl:template>
<xsl:template match="mea:FAILUREREPORT[mea:TYPE='CAUSE']/mea:FAILURECODE">
<TLSClearanceCode2><xsl:value-of select="." /></TLSClearanceCode2>
</xsl:template>
<xsl:template match="mea:FAILUREREPORT[mea:TYPE='REMEDY']/mea:FAILURECODE">
<TLSClearanceCode3><xsl:value-of select="." /></TLSClearanceCode3>
</xsl:template>
<xsl:template name="TLS2">
<TLSRestorationTime></TLSRestorationTime>
<TLSCompletionRemarks></TLSCompletionRemarks>
</xsl:template>
正如您在上面看到的那样,我在XSL中仅定义了一个这样的名称空间
ExecuteMultipleOperations xmlns:xsi =“ w3.org/2001/XMLSchema-instance”
但是,我的输出XML具有2个命名空间,如下所示
ExecuteMultipleOperations xmlns:xsi =“ w3.org/2001/XMLSchema-instance” xmlns:mea =“ ibm.com/maximo”
我可以摆脱xmlns:mea =“ ibm.com/maximo”
答案 0 :(得分:0)
您还没有显示上下文,但是由于样式表使用的是match="mea:FAILUREREPORT ...
之类的模式,因此只有在它以某种方式声明xmlns:mea="..."
且如果您不需要或不需要该命名空间时,它才会起作用结果元素,然后可以在exclude-result-prefixes="mea"
或xsl:stylesheet
元素上添加xsl:transform
。