<?xml version="1.0" encoding="UTF-8"?>

<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.     
-->

<!DOCTYPE preferences SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>

<preferences EXTERNAL_XML_VERSION="1.0">
  <root type="user">
    <map />
    <node name="org">
      <map />
      <node name="apache">
        <map />
          <node name="harmony">
            <map />
            <node name="prefs">
              <map />
              <node name="tests">
                <map />
                <node name="java">
                  <map />
                  <node name="util">
                    <map />
                    
                    <node name="prefs">
                      <map>
                        <entry key="prefskey" value="newvalue" />
                        <entry key="prefskey3" value="newvalue3" />
                      </map>

                      <node name="mock">
                        <map />
                        <node name="child">
                          <map>
                            <entry key="key2" value="value2" />
                          </map>
                          <node name="grandson">
                            <map>
                              <entry key="key3" value="value3" />
                            </map>
                          <node name="grandgrandson">
                            <map>
                              <entry key="key4" value="value4" />
                            </map>
                          </node> <!--grandgrandson-->
                        </node> <!--grandson-->
                      </node> <!--child-->
                    </node> <!--mock-->

                  </node> <!--prefs-->
                </node> <!--util-->
              </node> <!--java-->
            </node> <!--tests-->
          </node> <!--prefs-->
        </node> <!--harmony-->
      </node> <!--apache-->
    </node> <!--org-->
  </root>
</preferences>
