gpt4 book ai didi

xsd - XSD 中 element 和 complexType 之间的语义差异

转载 作者:行者123 更新时间:2023-12-04 12:48:35 27 4
gpt4 key购买 nike

鉴于此 XSD:

<xsd:element name="ServiceList">
<xsd:complexType>
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="ServiceList">
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>

这两者之间的语义差异是什么? IE。命名 element s 和 complexType s 是 schema 的直接子代.

我问的原因是我尝试在 XSD 中执行此操作:
<xsd:element name="AvailableServices" type="cm:ServiceList" />
<xsd:element name="ExistingServices" type="cm:ServiceList" />
<xsd:complexType name="ServiceList">
<xsd:sequence>
...
</xsd:sequence>
</xsd:complexType>

但是当使用 Maven JAXB 插件将它编译成 Java 类时,我只能创建一个 new ServiceList() . AvailableServicesExistingServices在生成的类中似乎甚至不存在。那么,这里发生了什么?

最佳答案

类对应复杂类型

JAXB (JSR-222) Java 类对应于复杂类型。全局元素的命名复杂类型和匿名复杂类型对应于根级类。默认情况下,嵌套复杂类型生成为静态内部类。您可以更改此默认行为:

  • https://stackoverflow.com/a/13175419/383861

  • 全局元素

    如果全局元素与复杂类型(具有匿名复杂类型的全局元素)唯一关联,它将用 @XmlRootElement 注释。 .全局类型对应的全局元素会对应 @XmlElementDecl ObjectFactory 中的注释类(class)。

    更多信息
  • http://blog.bdoughan.com/2012/07/jaxb-and-root-elements.html
  • 关于xsd - XSD 中 element 和 complexType 之间的语义差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178739/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com