3

以下のように年のセクション (20512 など)を設定すると、XSD は引き続き XML を検証します。

何か案が。

これは欠陥ですか、それとも特定のパターンでsimpleTypeを使用する必要がありますか?

ありがとう

XSD

<xs:attribute name="date" type="xs:date" />

<xs:attribute name="timestamp" type="xs:dateTime" />

XML

<store date="20512-07-11" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="items.xsd">

<store timestamp="20512-07-11T21:50:16" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="items.xsd">
4

2 に答える 2

11

申し訳ありませんが、なぜ 20512-07-11 が無効な日付であるとお考えですか? 天文学者は、日食がその日に起こることを示すデータを維持することに非常に熱心かもしれません。

日付を特定の範囲 (2100 年より前など) に制限する場合は、maxExclusive ファセットを使用して値の範囲を制限する xs:date から派生した simpleType を使用する必要があります。

于 2012-07-27T21:54:54.493 に答える
3

バリデーターに欠陥はありません(ところで、使用しているバリデーターを指定する必要があります)。他のバリデーター(誤)は、期待どおりに動作します。たとえば、.NETは文句を言うでしょうThe value '20512-07-11' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:date' - The string '20512-07-11' is not a valid XsdDateTime value.

XSD仕様のこのセクション、セクションD3.3を参照してください。これは、値が有効であることを明確に示しています。

于 2012-07-27T17:57:19.627 に答える