nadpisywanie minOccurs z grupy

Mam sytuację, w której istnieje typ podstawowy, którego nie „posiadam”, i który pozwala wszystkim elementom potomnym być opcjonalnymi. Z ogólnej perspektywy biznesowej ma to sens. Na przykład powiedzmy, że było:

<xs:complexType name="BaseType">
    <xs:sequence>
        <xs:element name="id" type="xs:string" minOccurs="0"/>
        <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
</xs:complexType>

Instancja tego typu będzie zawarta w typie zawierającym używanym przez mój proces.

<xs:complexType name="MyType">
    <xs:sequence>
        <xs:element name="Widget" type="BaseType"/>
        ...other stuff...
    <xs:sequence>
</xs:complexType>

Jednak dla moich szczególnych potrzeb potrzebuję, aby element „id” na BaseType był zawsze obecny. Mogę to oczywiście wymusić w kodzie, który go konsumuje, ale czy jest jakiś sposób, aby to przedstawić w xsd?

EDYTUJ Zapomniałem się. Jest inna, podobna sytuacja, w której elementy, których używam, są raczej grupowe niż bazowe.

<xs:group name="Address-Group">
    <xs:sequence>
        <xs:element name="street" type="xs:string" minOccurs="0"/>
        <xs:element name="city" type="xs:string" minOccurs="0"/>
        ...etc....
    </xs:sequence>
</xs:group>

Jeśli zastosuję jedną z nich w MyType, będę miał to samo pytanie o próbę zastąpienia minOccurs dla czegoś takiego jak „miasto”.

questionAnswers(1)

yourAnswerToTheQuestion