在另一个complexType中引用xs:complexType

时间:2014-02-14 07:20:55

标签: xml xsd schema

我有两个复杂类型声明为(类型SecurityRule已明确定义):

<xs:complexType name="SecurityGroup">
    <xs:sequence>
        <xs:element name="rules" type="SecurityRule" maxOccurs="unbounded"></xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>

<xs:complexType name="Template">
    <xs:sequence>
        <xs:element name="tagsList" maxOccurs="unbounded"
            type="xs:string"></xs:element>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string"></xs:attribute>
    <xs:attribute name="providerId" type="xs:string"></xs:attribute>
    <xs:attribute name="locationName" type="xs:string"></xs:attribute>
</xs:complexType>

现在,当我尝试在第三种复杂类型中使用这两种复杂类型时:

<xs:complexType name="CreateServerInputBean">
        <xs:element name="template" type="Template"></xs:element>
        <xs:element name="securityGroup" type="SecurityGroup"></xs:element>
</xs:complexType>

我收到的错误是:

s4s-elt-invalid-content.1: The content of 'CreateServerInputBean' is invalid.  Element 'element' is invalid, misplaced, or occurs too often.

任何人都可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

像这样使用

<xs:complexType name="CreateServerInputBean">
<xs:sequence>
        <xs:element name="template" type="Template"></xs:element>
        <xs:element name="securityGroup" type="SecurityGroup"></xs:element>
    </xs:sequence>
</xs:complexType>

<xs:choice> or <xs:all>取决于您的要求