Restrição de enumeração dinâmica usando o XSD 1.1
Eu estou tentando criar uma definição de esquema usando XSD 1.1 no qual o resultado de um elemento é dependente de outro. Por exemplo, tenho uma lista suspensa de países e uma lista de estados para cada país. Quando uma pessoa seleciona um país, somente os estados desse país podem ser selecionados. O pseudocódigo do que estou tentando atingir é algo assim.
<xs:schema xmlns:ie="http://www.interviewexchange.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="country">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="USA" />
<xs:enumeration value="UK" />
<xs:enumeration value="India" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="state">
<xs:simpleType>
<xs:restriction base="xs:string">
<assert test="if (country eq 'USA')">
<xs:enumeration value="MA" />
<xs:enumeration value="AR" />
<xs:enumeration value="NY" />
</assert">
<assert test="if (country eq 'India')">
<xs:enumeration value="AP" />
<xs:enumeration value="TN" />
<xs:enumeration value="MP" />
</assert">
</xs:restriction>
</xs:simpleType>
</xs:element>
Por favor, sugira-me se estou seguindo a abordagem correta. Se estou seguindo a abordagem correta, alguém pode me dar o código de como essa restrição pode ser alcançada? Desde já, obrigado...