当前位置: 首页 > 知识库问答 >
问题:

摆脱名称空间

韦熙云
2023-03-14
<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中只定义了一个命名空间,如下所示

xml: xsi="w3.org/2001/XMLSchema-instance"

但是,我的输出XML有2个命名空间,如下所示

xsi="w3.org/2001/XMLSchema-instance"xmlns: mea="ibm.com/maximo"

我可以摆脱xmlns: mea="ibm.com/maximo"

共有1个答案

璩慎之
2023-03-14

您尚未显示上下文,但由于样式表使用了类似于match=“mea:FAILUREREPORT…”的模式,因此只有在声明xmlns:mea=“…”时,它才会起作用。。。“以某种方式,如果您不希望或不需要结果元素的名称空间,则可以在xsl:stylesheetxsl:transform元素上添加exclude result prefixes=“mea”

 类似资料:
  • 我有JavaWebService代码在我的eclipse。我使用了@WebService@Webmethod,@XmlElements,@XmlType,@XmlAccessorType 现在我正在使用cxf框架中的java2ws命令生成wsdl。这是命令 我的wsdl文件包含agr0作为我不想要的名称,因为当我将其导入SoapUI时。它正在字段周围添加标记。 下面是带有arg0的wsdl部分 下

  • 问题内容: 我正在使用Apache Derby嵌入式数据库在Maven项目中进行单元测试。不幸的是,每当运行测试时,我最终都会在项目根目录中找到该文件。数据库本身是在目录()中创建的,因此这不是问题。在查阅参考指南之后, 我尝试在JDBC url()上设置参数,但这似乎是针对其他日志的,因此仍然会出现。 任何帮助深表感谢。 问题答案: 您可以通过创建以下类来摆脱文件 并设置JVM系统属性,例如,使

  • 在这段代码中,我从\u RETURN\u VALUE得到了\u SOME\u PATH\u上的

  • 问题内容: 到目前为止,给我带来了很多麻烦,所以我想摆脱它。尽管spring框架文档清楚地说明了应该做的事情,但实际上 并没有摘要列表。 所以我一直坚持删除并得到错误 -在名称为的中找不到带有请求的映射 对于所有应该由控制器类解决的Url(在这种情况下:)。有什么建议可以让我了解更多信息吗?我非常想知道到底由代表什么标签。 问题答案: 你可以用来自定义定义的每个bean 。现在,javadocs详

  • 问题内容: 到现在为止,给我造成了很多麻烦,所以我想摆脱它。尽管spring框架文档清楚地说明了应该做的事情,但实际上 并没有摘要列表。 所以我坚持删除并现在得到错误 WARN osweb.servlet.PageNotFound-在DispatcherServlet中,名称为’workoutsensor’的URI [/ webapp / trainees]的HTTP请求未找到映射 对于所有应该由

  • 在OpenFOAM中,存在一个函数,其名称为exp,表示数学中的幂操作。同时,C++本身也可以进行这个计算,并且函数名称也为exp。这会导致调用的时候,编译器并不知道应该调用OpenFOAM的exp还是C++本身的exp。一种方法是将其中一个exp函数进行改名,比如将OpenFOAM中的exp改成expFoam。但还有更简单的方式。 名称空间专门用于解决上面的问题,它可作为附加信息来区分不同库中相