Есть такой xml (упрощенно):
<state-machine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="..." name="post" initialState="draft">
<state value="draft" label="Черновик">
<event target="verified" label="Проверка" name="verify"/>
<event target="cancelled" label="Отмена" name="cancelling"/>
</state>
<state value="verified" label="Проверенный" />
<state value="cancelled" label="Отмененный" />
</state-machine>
В нем на свойство "target" ноды state>event надо наложить ограничение: "только список value из всех существующих state" то-есть в данном случае можно подставить только ['draft', 'verified', 'cancelled'] Как то это можно сделать?
Описание xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="state-machine" type="state-machineType"/>
<xs:complexType name="eventType">
<xs:attribute type="xs:string" name="target" use="required"/>
<xs:attribute type="xs:string" name="label" use="required"/>
<xs:attribute type="xs:string" name="name" use="required"/>
</xs:complexType>
<xs:complexType name="stateType">
<xs:sequence>
<xs:element type="eventType" name="event" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute type="xs:string" name="value" use="required"/>
<xs:attribute type="xs:string" name="label" use="required"/>
</xs:complexType>
<xs:complexType name="state-machineType">
<xs:sequence>
<xs:element type="stateType" name="state" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:string" name="initialState"/>
</xs:complexType>
</xs:schema>