0

iCal4jライブラリを使用してiCalendarフィードを生成しています。

カレンダーにイベントが追加されていない場合(追加する予定のイベントがないため)、iCalendarデータを出力ストリームに書き込むときに、iCal4jは検証例外をスローします。

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の検証が不必要に厳密であるだけですか?(後者が当てはまる場合、検証を緩和する方法はありますか?)

4

1 に答える 1

1

技術的には、セクション 3.6 で指定されているように、iCalendar には少なくとも 1 つのコンポーネントが必要です。

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)

検証しない CalendarOutputter を使用してこの例外を回避することもできますが、現在、iCal4j で空のカレンダー検証を選択的に無効にする方法はありません。

于 2012-05-28T14:06:06.883 に答える