<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 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. -->

<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">

    <xb:extension for="methodsColide_jira205_278.PurchaseOrder">
        <xb:interface name="ext.I1">
            <xb:staticHandler>ext.H1</xb:staticHandler>
        </xb:interface>
    </xb:extension>


    <xb:extension for="methodsColide_jira205_278.Customer">
        <xb:interface name="ext.I2">
            <xb:staticHandler>ext.H2</xb:staticHandler>
        </xb:interface>
    </xb:extension>

</xb:config>

