Ich habe ein Problem bei der Erstellung einer xsd
Datei. Ich brauche eine xsd
Datei für xml
Dokumente haben, die wie folgt aussehen:Wie kann ich in XSD zwei verschiedene Elemente mit demselben Namen definieren?
<message type="login">
<login nick="Ben" gameId="chess" desiredRole="simple "/>
</message>
oder ähnliche
<message type="error">
Error message
</message>
Bedeutung gibt es immer ein message
Tag, aber es hat verschiedene Attribut type
Werte und je nach Typ Wert gibt es verschiedene Dinge innerhalb der message
Tag. Ich habe versucht, so etwas wie diese:
<xsd:element name ='message' type='messageType'>
</xsd:element>
<xsd:complexType name='messageType'/>
<xsd:complexType name='error'>
<xsd:complexContent>
<xsd:extension base='messageType'>
<xsd:attribute name ='type' use='required'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='error'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name='login'>
<xsd:complexContent>
<xsd:extension base='messageType'>
<xsd:sequence>
<xsd:element name='login'>
<xsd:complexType>
<xsd:attribute name='nick' type='xsd:string' use='required'>
</xsd:attribute>
<xsd:attribute name='gameId' type='xsd:string' use='required'>
</xsd:attribute>
<xsd:attribute name='desiredRole' type='xsd:string' use='required'>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name ='type' use='required'>
<xsd:simpleType>
<xsd:restriction base='xsd:string'>
<xsd:enumeration value='login'/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
, aber es funktioniert nicht (ich eine Fehlermeldung erhalten, dass der Attributtyp nicht definiert wurde). Kann mir bitte jemand helfen? innerhalb der Nachricht