Witam. Otóż:
kiedy deklaruję sobie mój 'główny' typ złożony (nie wiem, czy właściwie się wysłowiłem) w następujący sposób:
<xsd:complexType name="czlonek_typ">
<xsd:sequence>
<xsd:element name="dane" type="dane_typ"/>
</xsd:sequence>
</xsd:complexType>,
a następnie definiuję sobie 'dane_typ' w taki oto sposób:
<xsd:simpleType name="dane_typ">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Szturmowiec"/>
<xsd:enumeration value="Snajper"/>
<xsd:enumeration value="Medyk"/>
</xsd:restriction>
</xsd:simpleType>,
to nawet jeśli w odpowiednim miejscu w pliku xml wpiszę nawet największe głupoty, plik i tak się waliduje. Natomiast jeśli zrobić coś takiego:
<xsd:complexType name="czlonek_typ">
<xsd:sequence>
<xsd:element ref="dane"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="dane" type="dane_typ"/>
<xsd:simpleType name="dane_typ">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Szturmowiec"/>
<xsd:enumeration value="Snajper"/>
<xsd:enumeration value="Medyk"/>
</xsd:restriction>
</xsd:simpleType>,
wszystko działa dokładnie tak jak powinno (tzn. plik waliduje się tylko jeśli w odpowiednim miejscu w pliku xml wpisałem 'Szturmowiec', 'Snajper', lub 'Medyk'.
Czy ktoś jest w stanie powiedzieć mi, czemu tak, a nie inaczej? I czy można zrobić coś, żeby, pierwszy sposób działał (tzn. jakoś go zmodyfikować)?