RRULE (RFC 5545) до и count

У меня проблемы с пониманием rfc5545, касающихся until и count. Насколько я понимаю, UNTIL и COUNT не могут находиться в одном и том же повторяющемся правиле в соответствии с этой частью RFC:

Имя значения: RECUR

Назначение: этот тип значения используется для идентификации свойств, содержащих спецификацию правила повторения.

Формальное определение: Тип значения определяется следующей нотацией
:

 recur      = "FREQ"=freq *(

            ; either UNTIL or COUNT may appear in a 'recur',
            ; but UNTIL and COUNT MUST NOT occur in the same 'recur'
...

Далее в RFC это сказано:

Если указано несколько частей правила BYxxx, то после оценки указанных частей правила FREQ и INTERVAL части правила BYxxx применяются к текущему набору оцениваемых вхождений в следующем порядке: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, BYHOUR, BYMINUTE , ПО СЕКУНДУ и ПОСЕТИТЬ; затем оцениваются COUNT и UNTIL.

Этот последний абзац, кажется, подразумевает, что COUNT и UNTIL могут находиться в одном и том же RRULE.

Когда я проверяю библиотеки, которые реализуют генератор правил и синтаксический анализ, нет проверки, которая гарантирует, что COUNT и UNTIL не находятся в одном и том же повторении.

Какова общая реализация, которую все обычно делают с этим? Должны ли мы игнорировать эту проверку и просто использовать параметр UNTIL, когда есть COUNT и UNTIL (или наоборот)? Что именно RFC означает в отношении параметра COUNT и UNTIL?


person Nico    schedule 05.11.2015    source источник
comment
Спецификация iCal ужасна и многословна, почему они не могли просто использовать какой-то простой интерфейс json :-(   -  person Oliver Dixon    schedule 17.02.2016


Ответы (1)


Я не думаю, что из второго абзаца можно сделать вывод, что наличие обоих допустимо.

Есть только одно определение RECUR и количество его различных компонентов: определение ABNF. Сюда вам следует пойти, чтобы проверить действительность вашей собственности. Во втором абзаце просто описывается алгоритм, используемый для выполнения расширения RRULE.

person Arnaud Quillaud    schedule 06.11.2015