我可以为complexType和element - XSD标准指定相同的名称

时间:2014-08-30 06:52:53

标签: java java-ee xsd xsd-validation

以下是示例。请告诉我有同名的副作用。我正在尝试从这个XSD创建Java对象模型。

 <xs:element name="person" type="person"/>

        <xs:complexType name="person">
          <xs:sequence>
            <xs:element name="firstname" type="xs:string"/>
            <xs:element name="lastname" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>

1 个答案:

答案 0 :(得分:4)

在XML Schema术语中说得很好,你可以拥有一个具有相同名称的元素和类型而不含歧义,因为它在任何给定时间都是你所指的上下文中显而易见的。

在JAXB中,类型将映射到Java类Person,元素声明将成为ObjectFactory上的方法,使用映射到JAXBElement<Person>的元素。对于具有匿名嵌套complexType的元素,您只能获得@XmlRootElement注释类(即,除了此特定根元素之外,该类型不能用于任何其他类型的情况)。