ステップ360で最小値が0、最大値が91800のようなXMLスキーマの要素を定義したい場合は、列挙パターンを使用せずに可能な組み合わせが0、360、720などであることを意味します
これをどのように定義できますか?
ステップ360で最小値が0、最大値が91800のようなXMLスキーマの要素を定義したい場合は、列挙パターンを使用せずに可能な組み合わせが0、360、720などであることを意味します
これをどのように定義できますか?
それを行う方法は考えられません-検証ルールで算術演算を行うことはできません。
あなたは列挙型の使用にこだわっています(あなたの場合は可能だと思われます-私が間違っていなければ256の可能な値です)。
有限状態オートマトンは 360 で割り切れる数のセットを認識できるため、原理的には非常に複雑な正規表現を使用してこれを行うことができますが、考えている範囲については、列挙型の方が実際にははるかに理解しやすいでしょう (正しく書くこと)。
そのため、XSD 1.0 では、必要な型を定義する唯一の方法が列挙型であるとは限りませんが、それが最も簡単で最良の方法であることは事実です。
XSD 1.1 では、XPath 2.0 で表現されたアサーションを使用して、算術関係を取得できます。
<xs:simpleType name="small-multiples-of-three-sixty">
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="91800"/>
<xs:assertion test="$value mod 360 eq 0"/>
</xs:restriction>
</xs:simpleType>