Вы серьезно запутались.
Ваш ответ Велленсу указывает на то, что данные вашего экземпляра имеют форму <DOB>1988-01-24</DOB>
.Это значение типа xs: date.Элемент должен быть описан в схеме как простой тип, а не как сложный тип, структура которого представляет собой последовательность (дочерних) элементов.Если бы он был в форме
<DOB><year>1988</year><month>01</month><day>24</day></DOB>
, вы могли бы использовать сложный тип, определение которого представляет собой последовательность, включающую элемент типа gYear, элемент типа gMonth и элемент типа gDay.Но я не думаю, что ваши данные такие.
Ваша путаница особенно очевидна, когда вы пытались определить элемент с именем «-».Это даже не допустимое имя элемента XML, не говоря уже об имени элемента, которое появляется в ваших данных.
Итак, как вы ограничиваете xs: date в диапазоне от 1920-01-01 до 2000-12-31, говорите?Ответ заключается в использовании
<xs:simpleType>
<xs:restriction base="xs:date">
<xs:minInclusive value="1920-01-01"/>
<xs:maxInclusive value="2000-12-31"/>
<xs:pattern value=".{10}"/>
</xs:restriction>
</xs:simpleType>
Шаблон xs: ограничивает значение до 10-символьной строки.Это предотвращает добавление часового пояса, такого как 1920-01-01Z.