鉴于此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>
Run Code Online (Sandbox Code Playgroud)
这两者之间的语义差异是什么?即命名elements和complexTypes,它们是a的直接孩子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>
Run Code Online (Sandbox Code Playgroud)
但是当使用Maven JAXB插件将其编译成Java类时,我只能创建一个new ServiceList().AvailableServices并且ExistingServices似乎甚至不存在于生成的类中.那么,这里发生了什么?
类对应于复杂类型
在JAXB (JSR-222)中,Java 类对应于复杂类型。全局元素的命名复杂类型和匿名复杂类型对应于根级别类。默认情况下,嵌套复杂类型生成为静态内部类。您可以更改此默认行为:
全球元素
如果全局元素与复杂类型唯一关联(具有匿名复杂类型的全局元素),它将被注释为@XmlRootElement。与全局类型相对应的全局元素将与类@XmlElementDecl中的注释相对应ObjectFactory。
了解更多信息
| 归档时间: |
|
| 查看次数: |
3378 次 |
| 最近记录: |