私は XML スキーマを作成中ですが、私の値の 1 つは年です。そのため、すべての値が正確に 4 文字であることを確認したいと思います。そのために、次の構文を使用しています。
<xs:element name="publish_year" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="4"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
「totalDigits」を正しく理解していれば、誰かが「publish_year」の値として「2008」または「200」を渡すことができます。どちらも有効でしょう。そのため、4 桁が必要になるように XSD を構成するにはどうすればよいですか? 一見したところ、正規表現を使用すると思いますが、既に組み込まれているもの (「totalDigits」など) を見落としているかどうかを知りたいです。
アップデート:
私は次の解決策を取りました。やり過ぎかもしれませんが、要点は次のとおりです。
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:totalDigits value="4" fixed="true"/>
<xs:minInclusive value="1900"/>
<xs:pattern value="^([1][9]\d\d|[2]\d\d\d)$"/>
</xs:restriction>
</xs:simpleType>