Ograniczenie wyliczania dynamicznego za pomocą XSD 1.1
Próbuję utworzyć definicję schematu przy użyciu XSD 1.1, w którym wynik jednego elementu zależy od innych. Na przykład mam listę rozwijaną dla listy krajów i listę stanów dla każdego kraju. Kiedy osoba wybiera kraj, można wybrać tylko stany tego kraju. Pseudokod tego, co próbuję osiągnąć, wygląda mniej więcej tak.
<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>
Proszę zasugerować, czy podążam za właściwym podejściem. Jeśli postępuję zgodnie z właściwym podejściem, czy ktoś może mi podać kod, w jaki sposób można osiągnąć to ograniczenie? Z góry dziękuję...