Я пишу XML-схему для формата базы данных для шахматных игр. Ходы находятся в определенном формате, который я проверяю с помощью регулярного выражения; это выглядит примерно так: <move>Pe2e4</move>
. Элемент <move&>
также может содержать <variation>' element. The problem is, I can't simply do
mixed = "true" `, потому что мне нужно проверить ход. Вот соответствующая часть файла схемы:Смешанный контент XML Schema
<xs:element name="move">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="moveType">
<xs:attribute ref="time"/>
<xs:attribute ref="comment"/>
</xs:extension>
</xs:simpleContent>
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
moveType
является тип для движения, что делает проверку.
Так может кто-нибудь объяснить, как я могу:
- у меня проверка ход регулярных выражений,
- есть мой
<variation>
элемент, и - мои
time
иcomment
атрибуты.
Кстати, вся схема проверяет нормально без
<xs:sequence>
<xs:element ref="variation" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
части.
@ alpha123: Это не общая схема, я думаю. Было бы более понятным использовать два элемента, таких как `turn :: = (move | variant?)` – 2010-11-23 23:05:00