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”.