高级自定义 > 业务逻辑自定义 > 包自定义 > 降级交付的自定义 > XSL 变换方案
  
XSL 变换方案
对于每个 Windchill 版本中用于内容复制的受支持对象类型,元数据 (XSL) 定义更改都有不同的可能性。
本部分显示了被标识为支持向后兼容性的不同 xsl 变换方案,以及每种方案的 xsl 示例代码。
用于支持降级交付的 XSL 变换方案
方案
源版本
目标版本
示例 xslt
对象删除
WTPart
不可用
不需要 xsl 变换。导入期间将忽略/处理该对象。
对象添加
不可用
WTPart
不需要 xsl 变换。 没有要导出的数据。
重命名对象类型
WTPart
WTMyPart
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="WTPart">
<WTMyPart>
<xsl:copy-of select = "child::*"></xsl:copy-of>
</WTMyPart></xsl:template>
</xsl:stylesheet>
添加元素
NewElement 不存在
WTPart 中的 NewElement
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"></xsl:apply-templates> </xsl:copy> </xsl:template> <xsl:template match="FederationInfo"> <xsl:copy-of select="."></xsl:copy-of> <NewElement>NewElementAdded</NewElement> </xsl:template> </xsl:stylesheet>
删除元素
WTPart 中的 FederationInfo
FederationInfo 不可用
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="FederationInfo">
</xsl:template>
</xsl:stylesheet>
重命名元素
FederationInfo
NewFederationInfo
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="FederationInfo">
<NewFederationInfo>
<xsl:copy-of select="*"></xsl:copy-of>
</NewFederationInfo>
</xsl:template>
</xsl:stylesheet>
添加属性
属性 firstName 不存在。
firstNameWTPrincipal 参考的属性
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="WTPrincipalReference">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="createdBy/WTPrincipalReference/@fullName">
<xsl:copy-of select="." />
<xsl:attribute name="firstName">AddedFirstName</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
移除由 WTPrincipalReference 创建的属性 isInternal
isInternalWTPrincipalReference 的一个属性
isInternal 不可用
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="createdBy/WTPrincipalReference/@isInternal">
</xsl:template>
</xsl:stylesheet>
重命名属性
fullName
newFullName
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="WTPrincipalReference">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="WTPrincipalReference/@fullName">
<xsl:attribute name="newFullName">
<xsl:copy-of select="*" />
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
将属性的值拆分为两个不同的属性
FullName = Demo,User
FirstName = Demo, LastName = User
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="createdBy/WTPrincipalReference/@fullName"
name="split">
<xsl:param name="fullName">
<xsl:value-of select="." />
</xsl:param>
<xsl:if test="$fullName">
<xsl:param name="firstName">
<xsl:value-of select="substring-before($fullName, ',')" />
</xsl:param>
<xsl:param name="lastName">
<xsl:value-of select="substring-after($fullName, ',')" />
</xsl:param>
<xsl:if test="$firstName">
<xsl:attribute name="firstName"><xsl:value-of
select="$firstName" /></xsl:attribute>
</xsl:if>
<xsl:if test="$lastName">
<xsl:attribute name="lastName"><xsl:value-of
select="$lastName" /></xsl:attribute>
</xsl:if>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
合并 WTPart1, WTPArt2 以形成 WTPart
WTPart1, WTPart2
WTPart
要在 Java 委派中完成。
WTPart 拆分为 WTPart1, WTPart2
WTpart
WTPart1, WTPart2
要在 Java 委派中完成。