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

XSD 1.1中simpleContent扩展元素空文本默认值设置是否正确?

问题解答

你的原写法不符合XSD默认值的生效规则,所以xsData无法识别默认值是正常现象。

原写法失效的原因

XSD规范中,xs:element节点上的default属性仅对两类元素生效:

  • 类型为纯简单类型(没有嵌套复杂结构、没有属性)的元素
  • 复杂类型仅包含简单内容且没有定义任何属性的元素

你当前定义的pose元素属于「带属性的简单内容复杂类型」,因此元素级的default属性会被解析器忽略,无法关联到元素的文本内容上。

正确的实现方案

你需要将文本内容的默认值绑定到内容本身的类型上,而非元素节点,修改后的XSD定义如下:

<!-- 首先定义带默认值的文本内容类型 -->
<xs:simpleType name="PoseContentType">
  <xs:restriction base="xs:string">
    <xs:default value="0 0 0 0 0 0"/>
  </xs:restriction>
</xs:simpleType>

<!-- 定义pose元素,扩展上述内容类型增加可选属性 -->
<xs:element name="pose">
  <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="PoseContentType">
        <xs:attribute name="relative_to" type="xs:string" use="optional" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:element>

修改后的定义完全符合你预期的效果:

  • <pose></pose>会自动补全为<pose>0 0 0 0 0 0</pose>
  • <pose relative_to="something"/>会自动补全为<pose relative_to="something">0 0 0 0 0 0</pose>

xsData可以正确识别这种符合XSD规范的默认值定义,重新生成绑定代码即可生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:45:02