0

我有一个 complexType 像:

<xsd:complexType name="NightlyRate">
    <xsd:complexContent>
        <xsd:extension base="com:Money">
            <xsd:attribute name="night" type="com:Number" use="required"/>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

现在,我想给“NightlyRate”添加一个子元素,它本身就是complexType。我尝试添加:

<xsd:element name="xxx" type"com:Money"/>

在 complexContent 元素之后,但它会抛出该元素不是预期的错误,部分问题是此复杂元素的类型与扩展基的类型相同。我正在使用 JAXB。有没有其他方法可以实现这一目标?

谢谢!

4

2 回答 2

2

要在 a 中获取子元素xsd:complexType,您必须将 axsd:sequence放入其中(第一级,以及注释和属性),这表明您想要很好......子元素。在此序列中,您可以包含其他已定义类型的元素或定义新类型。

请参阅W3Schools 中的 XSD 复杂元素和 womp 的示例。

在某些情况下,您可能希望使用该xsd:any元素来允许尚未定义的扩展(松散)。

于 2009-06-09T22:26:31.900 回答
1
<xsd:complexType name="NightlyRate">
    <xsd:complexContent>
        <xsd:extension base="com:Money">
            <xsd:sequence>
                <xsd:element name="xxx" type"com:Money">
                   <xsd:complexType>
                      <xsd:complexContent>
                             /// Attributes here
                      </xsd:complexContent>
                   </xsd:complexType>
                </xsd:element>
            </xsd:sequence>

            <xsd:attribute name="night" type="com:Number" use="required"/>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>
于 2009-06-09T22:21:16.763 回答