Я пытаюсь создать чистый XSL-FO со страницы VisualForce. Но xml, выходящий со страницы VisualForce, недействителен из-за пустых тегов span, которые генерируются вложенными тегами apex:outputPanel (внешний рендеринг = true, внутренний рендеринг = false). Вот конкретная страница, иллюстрирующая проблему:
There is no reason for a nested apex:outputpanel to generate a span tag like this:
This breaks strict xml documents like XSL-FO.
На этой странице выводится следующий xml-вывод:
There is no reason for a nested apex:outputpanel to generate a span tag like this:
This breaks strict xml documents like XSL-FO.
На самом деле, я нашел неясную причину в документах:
атрибут макета apex:outputPanel — Стиль макета панели.Возможные значения включают «блок» (который создает HTML-тег div), «встроенный» (который генерирует HTML-тег span) и «none» (который не создает HTML-тег). Если не указано, это значение по умолчанию равно "none". Однако, если для макета установлено значение «none», для каждого дочернего элемента с атрибутом rendered, установленным на «false», outputPanel генерирует тег spanс идентификатором каждого дочернего элемента и установленным атрибутом стиля. на «отображать: нет». Таким образом, хотя содержимое не видно, JavaScript все равно может получить доступ к элементам через DOM ID.
Звучит полезно, если у меня тип контента html или javascript, но это нарушает мой строгий xml. Итак, вопрос: как я могу добиться вложенного условного рендеринга, избегая тегов span?