Я думаю, что единственный способ использовать xsd:pattern
.Вы хотите:
<xs:simpleType name="ColorEnum">
<xs:restriction base="xs:string">
<xs:pattern value="(Red){0,1}\s(Blue){0,1}\s(Green){0,1}"/>
</xs:restriction>
</xs:simpleType>
Это должно также обеспечить порядок.Я имею в виду, что вы не можете предоставить последовательность "Blue Green Red".В любом случае это должна быть отправная точка.
РЕДАКТИРОВАТЬ Очень противный:
<xs:simpleType name="ColorEnum">
<xs:restriction base="xs:string">
<xs:pattern value="((Red)?\s(Blue)?\s(Green)?)|((Red)?\s(Green)?\s(Blue)?)|((Green)?\s(Blue)?\s(Red)?)|((Green)?\s(Red)?\s(Blue)?)|((Blue)?\s(Green)?\s(Red)?)|((Blue)?\s(Red)?\s(Green)?)"/>
</xs:restriction>
</xs:simpleType>
РЕДАКТИРОВАТЬ
Количество комбинаций определяется как факториал от общего количества элементов, которые вы используете в последовательности.Я надеюсь, что тогда вы не превысите три элемента:)