考虑以下正则表达式
pattern = "(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d"
此模式以 MM/DD/YYYY 格式表示日期字符串。现在,如果我想创建几个这种类型的属性,我显然可以这样写:
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 compact syntax定义自己的类型的方法。我的问题是如何实现这种行为并避免代码两次重写。
任何帮助将不胜感激。提前致谢。