Próbuję dziedziczą i ograniczyć element ale dostaję następujący błąd (w walidacji eclipse):XSD ograniczenie elementu z dziedziczenia nie działa
Cząstka typu nie jest ważna ograniczenie cząsteczki podstawy.
"Opis" element nie powinien być częścią "TypeDevice" elementu. Po prostu nie mogę tego zrozumieć. To powinno być możliwe (zgodnie z tym tutorial):
Czy ktoś może mi pomóc?
Greets,
Bill
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.com" xmlns="http://www.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- Abstract Base Class -->
<xs:complexType name="AbstractDevice" abstract="true">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
<xs:element name="Description" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" />
</xs:complexType>
<!-- Inheritance with restriction -->
<xs:complexType name="TypeDevice">
<xs:complexContent>
<xs:restriction base="AbstractDevice">
<xs:sequence>
<xs:element name="Name" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="TypeRoot">
<xs:sequence>
<xs:element name="Device" type="TypeDevice" />
</xs:sequence>
</xs:complexType>
<xs:element name="Configuration" type="TypeRoot" />
</xs:schema>
Dzięki za odpowiedź. Ale pomyślałem, że właśnie to można zrobić z ograniczeniem zastosowanym do elementu. Połączony samouczek robi dokładnie to (ogranicz element "Autor" bazowego typu "Książka" w pochodnej "Pamphlet" przez ograniczenie.Może coś tu źle rozumiem.Nawiasem mówiąc, nie jest możliwe w mojej realizacji, aby ustawić Opis do "minOccurs = 0" w elemencie podstawowym. – Bill