次のXMLを適用するXMLスキーマを実装しようとしています。
<databases>
<database>
<name>"Test A"</name>
<host>"192.168.0.100"</host>
<default>yes</default>
</database>
<database>
<name>"Test B"</name>
<host>"192.168.0.200"</host>
<default>no</default>
</database>
<database>
<name>"Test C"</name>
<host>"localhost"</host>
<default>no</default>
</database>
</databases>
1つの重要な問題を除いて、自分でXMLスキーマを実装できます。つまり、最大で1つのデータベースのみをデフォルトとしてマークする必要があります。これは、ゼロデータベースをデフォルトとしてマークできることを意味し、これも有効と見なす必要があります。
例として、複数のデータベースがデフォルトとしてマークされているため、次のXMLはXMLスキーマによって無効と見なされる必要があります。
<databases>
<database>
<name>"Test A"</name>
<host>"192.168.0.100"</host>
<default>yes</default>
</database>
<database>
<name>"Test B"</name>
<host>"192.168.0.200"</host>
<default>no</default>
</database>
<database>
<name>"Test C"</name>
<host>"localhost"</host>
<default>yes</default>
</database>
次のXMLは、デフォルトとしてマークされている(ゼロの)データベースがないため、XMLスキーマによって有効であると見なされる必要があります。
<databases>
<database>
<name>"Test A"</name>
<host>"192.168.0.100"</host>
<default>no</default>
</database>
<database>
<name>"Test B"</name>
<host>"192.168.0.200"</host>
<default>no</default>
</database>
<database>
<name>"Test C"</name>
<host>"localhost"</host>
<default>no</default>
</database>
XMLスキーマでそのような制約を強制することが可能かどうか誰かが知っていますか?あるべきだと思いますが、どうやって実装すればいいのかわかりません。
この件に関してご協力いただければ幸いです。
前もって感謝します。