2010-06-30 4 views
0

Я пытаюсь добавить дополнительные строки в таблицу в ФОП, чтобы заполнить их до 13 строк с этим кодом:Loops в ФОП неудачу

 <!-- Fill Up Empty space --> 
     <c:forEach var="i" begin="${position_id}" end="13" step="1"> 
     <fo:table-row height="4.4mm" border-bottom-color="black" 
      border-bottom-style="fixed" border-bottom-width="0.2mm"> 
      <fo:table-cell border-bottom-style="solid" 
      border-bottom-width="0.2mm" border-top-style="solid" 
      border-top-width="0.1mm"> 
      <fo:block font-size="8pt" text-align="center"> 
      </fo:block> 
      </fo:table-cell> 
      <fo:table-cell border-bottom-style="solid" 
      border-bottom-width="0.2mm" border-top-style="solid" 
      border-top-width="0.1mm"> 
      <fo:block /> 
      </fo:table-cell> 
      <fo:table-cell border-bottom-style="solid" 
      border-bottom-width="0.2mm" border-top-style="solid" 
      border-top-width="0.1mm"> 
      <fo:block /> 
      </fo:table-cell> 
      <fo:table-cell border-bottom-style="solid" 
      border-bottom-width="0.2mm" border-top-style="solid" 
      border-top-width="0.1mm"> 
      <fo:block /> 
      </fo:table-cell> 
      <fo:table-cell border-bottom-style="solid" 
      border-bottom-width="0.2mm" border-top-style="solid" 
      border-top-width="0.1mm"> 
      <fo:block /> 
      </fo:table-cell> 
     </fo:table-row> 
     </c:forEach> 

Проблема заключается в том, что я получаю исключение:

org.apache.fop.fo.ValidationException: file:/tmp/fop_1613051806105460695.fo:289:126: Error(289/126): fo:table-row is not a valid child element of forEach. 
at org.apache.fop.fo.FONode.invalidChildError(FONode.java:435) 
at org.apache.fop.fo.FONode.invalidChildError(FONode.java:420) 
at org.apache.fop.fo.XMLObj.validateChildNode(XMLObj.java:70) 
    ... 

И Гуглинг тоже не помогает. Есть идеи?

ответ

2

"c: forEach" ничего не может иметь FOP. Это какой-то проприетарный язык преобразования XML? Во всяком случае, вам нужно будет убедиться, что трансформация выполняется до того, как FOP и FOP получат простой XSL-FO. Тогда эта ошибка должна исчезнуть.

Только примечание на частях FO: эта таблица-строка может свернуть до нулевой высоты, если нет содержимого. Возможно, вам нужно будет использовать что-то вроде block-progression-dimension.minimum = "1.2em" в таблице-таблице, чтобы избежать эффекта свертывания.

+0

Ну, c: forEach - это просто JSTL Core forEach, и поскольку я могу использовать c: set, я понятия не имею, почему это не работает. Что касается нулевой высоты, я попробую это сделать, но у меня создалось впечатление, что, установив высоту, я также установил размер блока-прогрессора. – cdecker