1
考慮以下的正則表達式如何在Relax NG中定義自己的類型?
pattern = "(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d"
這pattertn表示MM/DD/YYYY格式的日期字符串。現在,如果我想創建幾個這種類型的attribues,我可以明顯地寫他們喜歡:
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來定義自己類型的方法。我的問題是如何實現這種行爲並避免代碼重寫兩次。
任何幫助將不勝感激。提前致謝。