<?xml version="1.0"?>
<!--
  Copyright 2002,2004 The Apache Software Foundation.
  
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!-- a dummy file-->

<j:jelly xmlns:j="jelly:core">

    <j:if test="${1==2}">    
        <static>
            <some id="12">
                <dummy x="${dummy.whatever}">
                    this is some static XML
                </dummy>
                <dummy x="${dummy.whatever}">
                    some ${e}
                </dummy>
            </some>
        </static>
    </j:if>        

  <j:forEach var="i" begin="1" end="100">
      <j:set var="dummy" value="${i}"/>
  </j:forEach>
</j:jelly>