<?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.

-->
<namespaceSample xmlns='http://anything.org/extension'>
	<name>Bean Wrapper test</name>
	<config-property>
		<config-property-type>int</config-property-type>
	</config-property>
  <more-info>
	<config-property>
	  <config-property-name>head</config-property-name>
	  <config-property-type>body part</config-property-type>
	  <config-property-value>on the door</config-property-value>
	</config-property>
  </more-info>
</namespaceSample>
