/ / XSD sprawdza nieprawidłowy format xs: date i xs: dateTime - xml, xsd

XSD sprawdza nieprawidłowy format xs: date i xs: dateTime - xml, xsd

Kiedy ustawiam rok sekcja jak poniżej (20512 lub coś w tym stylu), XSD nadal sprawdza XML.

Dowolny pomysł.

Czy jest to usterka, czy też muszę jej użyć simpleType z danym wzorem?

Dzięki

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">

Odpowiedzi:

4 dla odpowiedzi № 1

To jest NIE błąd w walidatorze (btw, powinieneś wskazać, którego walidatora używasz). Inne walidatory (mis) zachowują się tak, jak ci się wydaje, np. .NET skarży się 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.

Widzieć w tej sekcji specyfikacji XSD, sekcja D3.3, która jasno stwierdza, że ​​twoja wartość jest ważna.


10 dla odpowiedzi nr 2

Przepraszamy, ale dlaczego uważasz, że 20512-07-11 jest nieprawidłową datą? Astronomowie mogą być bardzo zainteresowani utrzymaniem danych pokazujących, że zaćmienie nastąpi w tym dniu.

Jeśli chcesz ograniczyć daty do określonego zakresu, np. Przed rokiem 2100, powinieneś użyć typu simpleType wywodzącego się z xs: date, który ogranicza zakres wartości za pomocą aspektu maxExclusive.