我是 XSL 新手,在将异常值转换为 JAXB 注释类中的已知枚举方面遇到了一些困难。我有一个枚举定义为:
@XmlType( name = "accountGroup" )
@XmlEnum
public enum AccountGroup
{
SOLD_TO, SHIP_TO, BILL_TO;
public static AccountGroup fromValue( String v )
{
return valueOf( v );
}
public String value()
{
return name();
}
}
此枚举的一个实例在我的目标类中作为 accountGroup。
当这些枚举值之一位于源 XML 中时,一切都很好。比如一个系统传入:
<acctType>SOLD_TO</acctType>
此输入的 XSL 仅接受此输入并将其转换为 java 类所需的 XML,并在枚举中设置值。
<xsl:element name="accountGroup"><xsl:value-of select="acctType"/></xsl:element>
但是,一个系统正在传递我需要转换的不同值,因此我对这些输入使用不同的 XSL 模板。源值类似于:
<rn4:displayValue>Z001, Sold-to party</rn4:displayValue>
我正在尝试将其转换为以下内容:
<xsl:element name="accountGroup">
<xsl:choose>
<xsl:when test="substring-before(rn4:matched/rn4:kTOKD/rn4:displayValue,',')='Z001'">
SOLD_TO
</xsl:when>
</xsl:choose>
</xsl:element>
我已经测试过子字符串解析为 Z001,但枚举值未设置。
我需要做什么?
最佳答案
不要在第四行中仅使用“SOLD_TO”,而是使用以下内容:
<xsl:value-of select="string('SOLD_TO')"/>
关于java - XSL 转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502360/