Czy jest możliwe zdefiniowanie w schemacie XML warunku opartego na wartości atrybutu? Na przykład, gdy [email protected]="one"
, chcę, aby one-element
było dozwolone i obowiązkowe, lub gdy [email protected]="two"
, chcę, aby two-element
było dozwolone i obowiązkowe.Warunek oparty na wartości atrybutu (schemat XML)
Na przykład, ważne dokumenty są:
<root>
<test attrib="one"/>
<some-element-1/>
<some-element-2/>
...
<some-element-n/>
<one-element>
</one-element>
</root>
lub
<root>
<test attrib="two"/>
<some-element-1/>
<some-element-2/>
...
<some-element-n/>
<two-element>
</two-element>
</root>
nieprawidłowe dokumenty:
<root>
<test attrib="one"/>
<some-element-1/>
<some-element-2/>
...
<some-element-n/>
</root>
lub
<root>
<test attrib="two"/>
<some-element-1/>
<some-element-2/>
...
<some-element-n/>
<one-element>
</one-element>
</root>
Czy to możliwe w XSD?
Więc trzeba zdefiniować również ' ' dwa razy dla każdego przypadku? –
Pol
Nie można zdefiniować znanego typu na poziomie katalogu schematu i użyć go ponownie. Zobacz moją aktualizację. –
Dzięki. Do zdefiniowania dwóch typów należy użyć 'xs: attribute' (z atrybutem' fixed' i 'xs: choice'? – Pol