Рассмотрим следующее регулярное выражение
pattern = "(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d"
Этот шаблон представляет строки даты в формате ММ / ДД / ГГГГ. Теперь, если я хочу создать несколько атрибутов этого типа, я могу написать их как:
element holiday
{
attribute beginDate
{
xs:string { pattern = "(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d" }
}
attribute endDate
{
xs:string { pattern = "(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d" }
}
}
Но очень неудобно писать строку шаблона каждый раз, когда я хочу определить дату в таком формате. Я хотел бы определить свой собственный тип, например, MyDateFormat
, и используйте его там, где необходимо, как attribute someDate { MyDateFormat }
вместо того, чтобы переписывать один и тот же код несколько раз, но я не смог найти способ определить собственные типы, используя Компактный синтаксис Relax NG . Мой вопрос заключается в том, как можно реализовать такое поведение и избежать повторного переписывания кода.
Любая помощь будет оценена. Заранее спасибо.