Как я всегда думал, xs:restriction
используется для ограничения определенного простого типа или complexType, отсюда и имя restriction
. Но приведенный ниже фрагмент xsd верен. Взгляните на Norwegian_customer
, country
перезаписан complexType, поэтому он расширен, а не ограничен. И он переименован. Что именно делает xs:restriction
? Is xs:restriction
надмножество xs:extension
? Фрагмент подтвержден в WebStorm
.why this this complexType definition correct
<xs:complexType name="customer">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Norwegian_customer">
<xs:complexContent>
<xs:restriction base="customer">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="country1">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>