Was ist an dem Type falsch?

derHighlander

Grünschnabel
Hallo, ich hab folgenden Typ in einem Schema und weiß momentan nicht was an diesem Typ falsch ist.

<xs:complexType name="configuration.Type">
<xs:complexContent>
<xs:extension base="versionedEntity.Type">
<xs:sequence>
<xs:element name="event" type="xs:string" minOccurs="0"/>
<xs:element name="integration" type="xs:string" minOccurs="0"/>
<xs:element name="vehicles" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="vehicle" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="entity.Type">
<xs:sequence>
<xs:element name="term" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

Also ich kann es soweit eingrenzen, dass der fettgedruckte Teil falsch ist, und zwar die Schachtelung von complexContent und complexType

Der entity.Type sieht folgendermaßen aus:
<xs:complexType name="entity.Type" abstract="true">
<xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>
 
Altova sagt folgendes (Eclipse XSD auch):
Das Element <xs:complexContent> ist an dieser Position unter Element <xs:complexType> nicht zulässig.
 
Also ich hab jetzt nichts verändert, hab es nur etwas auseinandergepflückt um es meiner Meinung nach übersichtlicher zu gestalten. Bei mir wird nämlich kein Fehler angezeigt.

Kopier das mal bitte bei dir rein.

Code:
<xs:element name="vehicle">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="entity.Type">
                    <xs:sequence>
                        <xs:element name="term" type="xs:string" minOccurs="0"/>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>

    <xs:element name="vehicles">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="vehicle" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:complexType name="configuration.Type">
        <xs:complexContent>
            <xs:extension base="versionedEntity.Type">
                <xs:sequence>
                    <xs:element name="event" type="xs:string" minOccurs="0"/>
                    <xs:element name="integration" type="xs:string" minOccurs="0"/>
                    <xs:element ref="vehicles" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
 
Man kann das so machen wie du gemacht hast. Warum bei dir ein Fehler angezeigt wurde, kann ich dir nicht sagen.
So wie ich es jetzt gemacht habe, finde ich es wesentlich übersichtlicher. Man kann so, meiner Meinung nach, wesentlich einfacher Elemente bearbeiten. Ein weiterer Vorteil ist noch, dass man sie auch wiederverwenden kann.


MFG

zEriX
 

Neue Beiträge

Zurück