空日历上的 iCal4j 验证异常



我正在使用iCal4j库来生成iCalendar提要。

如果没有将任何事件添加到日历(仅仅是因为碰巧没有任何即将发生的事件要添加),iCal4j 会在将 iCalendar 数据写入输出流时引发验证异常:

net.fortuna.ical4j.model.ValidationException: Calendar must contain at least one component
    at net.fortuna.ical4j.model.Calendar.validate(Calendar.java:287)
    at net.fortuna.ical4j.model.Calendar.validate(Calendar.java:257)
    at net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:96)
    at net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:83)

那么,根据iCalendar标准,没有事件的日历实际上是无效的,还是只是iCal4j的验证过于严格?(如果后者适用,有没有办法放松验证?

从技术上讲,iCalendar 至少需要一个组件,如第 3.6 节所述:

https://www.rfc-editor.org/rfc/rfc5545#section-3.6

   icalbody   = calprops component
   [snip..]
   component  = 1*(eventc / todoc / journalc / freebusyc /
                timezonec / iana-comp / x-comp)

您可以使用非验证日历输出器来避免此异常,但目前无法在 iCal4j 中选择性地禁用空日历验证。

相关内容

  • 没有找到相关文章

最新更新