Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Как срубить свой Custom Date в Xsd?


Автор: onsh76 6.10.2005, 23:31
Уважаемые!
Помогите построить маску для элемента xsd, представляющего собой дату как стринг следующего формата:
В Java это паттерн: "ddMMMyyyy" (для SimpleDateFormat).
Например: "01JAN2005" или "22DEC2004".

Я вот набросал простенький пример:
Код

<xsd:simpleType name="rep_date">
<xsd:restriction base="xsd:string">
<xsd:length value="9">
<xsd:pattern value="[0-9]{2}\d{3}[0-9]{4}"/>
</xsd:restriction>
</xsd:simpleType>


Может есть возможность улучшить это дело?
Помогите,плиз...

Автор: onsh76 7.10.2005, 09:25
Aу, народ!

Хотелось например бы валидить:
- первые два символа должны быть целыми числами от 01 то 31;
- символы с 3 по 5 были проверены на енумерейшн: JAN, FEB, MAR и т.д. до DEC;

Автор: Ignat 7.10.2005, 12:29
onsh76, прекращаем флудить.
Последний пост трудночитаем, ибо написан не по-русски:

Цитата(onsh76 @ 7.10.2005, 10:25)
валидить

= Проверить на валидность.
Цитата(onsh76 @ 7.10.2005, 10:25)
проверены на енумерейшн

= Должны быть элементом списка.

Автор: Bikutoru 7.10.2005, 18:21
Я бы такой паттерн использовал, хоть он и не идеален:
Код

(((((0[1-9])|([12]\d)|(3[01]))(JAN|MAR|MAY|JUL|AUG|OCT|DEC))|(((0[1-9])|([12]\d))FEB)|((0[1-9])|([12]\d)|(30))(APR|JUN|SEP|NOV))([12]\d{3}))

Недостаток как минимум один: считается, что в декабре каждого года 29 дней. Года ограничены с 1000 по 2999.

Осторожно, оффтоп
Цитата(Ignat @ 7.10.2005, 13:29)
Последний пост трудночитаем, ибо написан не по-русски

Цитата(Ignat @ 7.10.2005, 13:29)
валидить

Цитата(Ignat @ 7.10.2005, 13:29)
= Проверить на валидность.


Объяснять нерусские слова через нерусские???
smile
Не удержался. Без обид.

Автор: Guest 7.10.2005, 18:31
Цитата(Bikutoru @ 7.10.2005, 18:21)
Я бы такой паттерн использовал, хоть он и не идеален:
Код

(((((0[1-9])|([12]\d)|(3[01]))(JAN|MAR|MAY|JUL|AUG|OCT|DEC))|(((0[1-9])|([12]\d))FEB)|((0[1-9])|([12]\d)|(30))(APR|JUN|SEP|NOV))([12]\d{3}))

Недостаток как минимум один: считается, что в декабре каждого года 29 дней. Года ограничены с 1000 по 2999.

Осторожно, оффтоп
Цитата(Ignat @ 7.10.2005, )
Последний пост трудночитаем, ибо написан не по-русски

Цитата(Ignat @ 7.10.2005, 13:29)
валидить

Цитата(Ignat @ 7.10.2005, 13:29)
= Проверить на валидность.


Объяснять нерусские слова через нерусские???
smile
Не удержался. Без обид.

Дык, и я вроде никого обидеть не хотел, наоборот...
Выразил свои мысли(т.е. вопрос) почти что псевдокодом...
А в меня сразу великороссы камнем кинули...

Bikutoru
Спасибо, всего конечно не проверишь, но это вполне устраивает!
Респект Вам большой!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)