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

请求提供XSLT映射:将XSD指定simpleType和element的name转为大写

XSD指定节点name属性转大写的XSLT方案

核心思路

用XSLT的身份转换模板默认复制所有节点和属性,只针对目标节点(simpleType、element)且name属性属于你指定的字段列表时,把name值转成大写,其他内容保持原样。

完整XSLT代码

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <!-- 默认复制所有节点、属性和文本 -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- 匹配element的name属性,仅指定字段转大写 -->
    <xsl:template match="xs:element/@name[. = ('userid', 'username', 'email')]">
        <xsl:attribute name="name">
            <xsl:value-of select="upper-case(.)"/>
        </xsl:attribute>
    </xsl:template>

    <!-- 匹配simpleType的name属性,仅指定字段转大写 -->
    <xsl:template match="xs:simpleType/@name[. = ('userType', 'statusType')]">
        <xsl:attribute name="name">
            <xsl:value-of select="upper-case(.)"/>
        </xsl:attribute>
    </xsl:template>

</xsl:stylesheet>

关键调整说明

  1. 字段列表修改:把代码中括号里的字段(比如('userid', 'username'))替换成你需要转大写的具体name值。
  2. XSLT版本兼容:如果用XSLT 1.0,没有upper-case()函数,把upper-case(.)换成translate(., 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')。
  3. 命名空间匹配:如果你的XSD没有用xs前缀,把xs:element、xs:simpleType改成element、simpleType即可。

示例效果

输入XSD片段

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="userType">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:element name="userid" type="xs:int"/>
    <xs:element name="address" type="xs:string"/>
</xs:schema>

输出XSD片段

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="USERTYPE">
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:element name="USERID" type="xs:int"/>
    <xs:element name="address" type="xs:string"/>
</xs:schema>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:45:42