Я пытаюсь ограничить значения для двух элементов, которые могут использовать (большинство) одни и те же значения атрибута «тип». Я хотел бы иметь возможность расширить эти значения для одного из элементов (см. пример кода ниже — атрибут «Значение» элемента «Конец» может иметь те же записи, что и атрибут «Значение» элемента «Начало», но есть могут быть дополнительные значения). Я не думаю, что мое решение в примере правильное; есть ли простое решение, которому я могу следовать?
<xsd:simpleType name="StartAndEndTypeType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="(value1|value2|value3"/>
</xsd:restriction>
</xsd:simpleType>
<xs:element name="Start">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attribute name="Value" type="StartAndEndTypeType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="End">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attribute name="Value" type="StartAndEndTypeType|value4"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>