You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移11g BPEL至12c时遇XML-22029错误:choose中无法转换otherwise子元素

解决XML-22029错误:XSL 1.0中标签的语法问题

错误原因

XSL 1.0对<choose>标签的语法有严格要求:

  • <choose>的直接子元素只能是<when>和最多一个<otherwise>
  • <otherwise>必须放在所有<when>之后,且内部不能嵌套<when>(<when>仅能作为<choose>的直接子元素)

你提供的代码存在两个违反规则的问题:

  1. 出现了两个<otherwise>标签,超出XSL 1.0允许的数量上限
  2. <otherwise>内部嵌套了<when>标签,不符合标签层级要求

修正方案

调整代码结构,严格遵循<choose>的语法规范:

  • 所有<when>作为<choose>的直接子元素,按条件优先级排序
  • 仅保留一个<otherwise>,置于所有<when>之后,作为默认分支

修正后的示例代码

<choose>
  <!-- 第一个条件分支(需补充test属性定义匹配条件) -->
  <when test="条件1">
    <element/>
  </when>
  <!-- 第二个条件分支(替代原otherwise内的when,需补充test属性) -->
  <when test="条件2">
    <element/>
  </when>
  <!-- 唯一的默认分支 -->
  <otherwise>
    <element/>
  </otherwise>
</choose>

关键注意事项

  • 每个<when>必须通过test属性定义匹配条件(原示例代码中缺失,实际使用时必须补充)
  • 条件分支按顺序匹配,一旦某个<when>的test条件成立,后续分支将不再执行

内容的提问来源于stack exchange,提问作者Pritish Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:45:07