#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
Я не думаю, что вы можете выразить все правила в регулярном выражении. В частности, будет сложно обеспечить соблюдение «максимум один раз». Это самое близкое, что я придумал,
<xs:simpleType name="order">
<xs:annotation>
<xs:documentation>
Comma-separated list of anything
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[^,]+(,\s*[^,]+)*"/>
</xs:restriction>
</xs:simpleType>
Вы можете попробовать использовать пробел в качестве разделителя. Это чаще встречается в файлах XML. Схема XML имеет встроенный тип " список
" , определенный для списка, разделенного пробелами.
Я могу написать файл схемы, если они будут следовать некоторой последовательности .. например {foo, bar, goo, doo, woo}
но в вашем случае вы говорите, что они могут появиться в ЛЮБОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ..
так (5P5 + 5P4 + 5P3 + 5P2 + 5P1 + 1) = 326 шаблонов .. !!!
Если есть была некоторая последовательность, как я уже упоминал ... тогда количество шаблонов было бы .. 32 .. терпимым ..