<?xml version='1.0' encoding='UTF-8'?>
<!-- this file includes unusual constructs, but that can be also managed by OpenJUMP -->

<JCSDataFile xmlns:gml="http://www.opengis.net/gml" 
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" >
<JCSGMLInputTemplate>
<CollectionElement>featureCollection</CollectionElement> 
<FeatureElement>feature</FeatureElement>
<GeometryElement>geometry</GeometryElement>
<ColumnDefinitions>
     <column>
          <name>first_property</name>
          <type>STRING</type>
          <valueElement elementName="property" attributeName="name" attributeValue="first_property_technical_name"/>
          <valueLocation position="body"/>
     </column>
     <column>
          <name>another_property</name>
          <type>STRING</type>
          <valueElement elementName="property" attributeName="name" attributeValue="another_property"/>
          <valueLocation position="body"/>
     </column>
     <column>
          <name>objectAttr</name>
          <type>OBJECT</type>
          <valueElement elementName="aproperty" attributeName="key" attributeValue="objectAttr"/>
          <valueLocation position="body"/>
     </column>
     <column>
          <name>attr2</name>
          <type>STRING</type>
          <valueElement elementName="attr2_element"/>
          <valueLocation position="body"/>
     </column>
     <column>
          <name>attr3</name>
          <type>STRING</type>
          <valueElement elementName="attr3_element"/>
          <valueLocation position="attribute" attributeName="val"/>
     </column>
    <column>
          <name>int</name>
          <type>INTEGER</type>
          <valueElement elementName="property" attributeName="name" attributeValue="int"/>
          <valueLocation position="body"/>
    </column>
    <column>
          <name>double</name>
          <type>DOUBLE</type>
          <valueElement elementName="property" attributeName="name" attributeValue="double"/>
          <valueLocation position="body"/>
    </column>
    <column>
          <name>date</name>
          <type>DATE</type>
          <valueElement elementName="property" attributeName="name" attributeValue="date"/>
          <valueLocation position="body"/>
     </column>
    <column>
          <name>datetime</name>
          <type>DATE</type>
          <valueElement elementName="property" attributeName="name" attributeValue="datetime"/>
          <valueLocation position="body"/>
     </column>
    <column>
          <name>R_G_B</name>
          <type>STRING</type>
          <valueElement elementName="property" attributeName="name" attributeValue="R_G_B"/>
          <valueLocation position="body"/>
     </column>
</ColumnDefinitions>

<!-- openjump will read it -->
    <column>
          <name>not_ignored</name>
          <type>STRING</type>
          <valueElement elementName="property" attributeName="name" attributeValue="not_ignored"/>
          <valueLocation position="body"/>
     </column>

</JCSGMLInputTemplate>


    <column>
          <name>ignored</name>
          <type>STRING</type>
          <valueElement elementName="property" attributeName="name" attributeValue="ignored"/>
          <valueLocation position="body"/>
     </column>

<some_element>
    <feature/> <!-- not expected here -->
    <featureCollection>
        <geometry/>  <!-- not expected here -->
        <some_element2>
            <feature fid="3"> 
                <featureCollection/>  <!-- not expected here -->
                <some_element3><some_element4>
                    <geometry>
                            <gml:Polygon foo="bar">
                            <gml:outerBoundaryIs>
                            <gml:LinearRing>
                                <gml:coordinates>0,0 0,10 10,10 10,0 0,0</gml:coordinates>
                            </gml:LinearRing>
                            </gml:outerBoundaryIs>
                            </gml:Polygon>  
                    </geometry>
                </some_element4></some_element3>
                <some_element5>
                    <property name="first_property_technical_name">even</property>
                </some_element5>
                <property name="another_property">rouault</property>
                <aproperty key="objectAttr">foo</aproperty>
                <attr3_element val="baz"/>
                <attr2_element>bar</attr2_element>
                <property name="int">123</property>
                <property name="double">1.23</property>
                <property name="date">2014/10/18</property>
                <property name="datetime">2014/10/18 21:36:45</property>
                <property name="R_G_B">0000FF</property>
                <property name="not_ignored"></property>
            </feature>
        <property name="int">1234</property>  <!-- not expected here -->
        </some_element2>

        <feature>
            <geometry><gml:Point><gml:coordinates>-1,-1</gml:coordinates></gml:Point></geometry>
            <property name="datetime">2014-10-18T21:36:45.000+0200</property>
            <property name="R_G_B">FF00FF</property>
        </feature>

        <feature> <geometry/> </feature>

     </featureCollection>
</some_element>

</JCSDataFile>
